Wir verwenden ein Bearbeitungssteuerelement (TxTextControl) von Dritt-Anbieter, das über verschiedene Symbolleisten und andere Steuerelemente verfügt, die an es angefügt werden können. Dazu platzieren Sie die Symbolleisten in der Ansicht und verknüpfen sie mit ihrem Namen. Es sieht etwa so aus:Benanntes WPF-Steuerelement kann nicht gefunden werden, wenn es prozedural hinzugefügt wird
<tx:RulerBar x:Name="rulerBar"/>
<tx:TextControl RulerBar="rulerBar"/>
Dies funktioniert gut, wenn in XAML definiert, aber wir haben ein Szenario, in dem wir diese prozedural aufbauen müssen. Wenn wir versuchen, die RulerBar (oder andere Symbolleisten/Steuerelemente) zu verknüpfen, wird aus irgendeinem Grund ein Fehler ausgegeben, dass die Symbolleiste nicht gefunden werden kann. Zum Beispiel:
DockPanel dock = new DockPanel();
dock.Children.Add(new RulerBar { Name="rulerBar" });
dock.Children.Add(new TextControl { RulerBar = "rulerBar" });
Ich habe auch versucht Loaded Event-Handler und latente die RulerBar Vereinigung Hinzufügen, bis beide Kontrollen vollständig geladen wurden, aber ich immer noch die gleichen Fehler. Sollte das einfach funktionieren, oder gibt es einen Trick, den ich vermisse? Leider ist die Namenszuordnung der einzige Mechanismus, den sie bereitstellen, und wir können die Steuerelemente nicht als Referenz zuordnen.
Haben Sie die Richtlinien für Sie zu 'using' in Ihrer Klasse? – Adam
@Adam, meinst du, implementieren sie IDisposable? Nein tun sie nicht. – amnesia