Nous utilisons un contrôle d'édition tiers (TxTextControl) qui possède diverses barres d'outils et autres contrôles qui peuvent lui être attachés. Pour cela, il faut placer les barres d'outils quelque part dans la vue et les associer par leur nom. Cela ressemble à quelque chose comme ceci :
<tx:RulerBar x:Name="rulerBar"/>
<tx:TextControl RulerBar="rulerBar"/>
Cela fonctionne bien lorsqu'il est défini en XAML, mais nous avons un scénario dans lequel nous devons le construire de manière procédurale. Pour une raison quelconque, lorsque nous essayons d'associer la RulerBar (ou toute autre barre d'outils/contrôle), un message d'erreur s'affiche indiquant que la barre d'outils ne peut être localisée. Par exemple :
DockPanel dock = new DockPanel();
dock.Children.Add(new RulerBar { Name="rulerBar" });
dock.Children.Add(new TextControl { RulerBar = "rulerBar" });
J'ai également essayé d'ajouter des gestionnaires d'événements Loaded et de différer l'association de la RulerBar jusqu'à ce que les deux contrôles soient complètement chargés, mais j'obtiens toujours la même erreur. Cela devrait-il simplement fonctionner, ou y a-t-il une astuce qui m'échappe ? Malheureusement, l'association par nom est le seul mécanisme qu'ils fournissent, et nous ne pouvons pas associer les contrôles par référence.