2009-02-26 7 views
0

Ich habe ein benutzerdefiniertes Textfeldsteuerelement, das ein Routingereignis auslöst, wenn sich seine TEXT-Eigenschaft ändert. Bei dieser Texteigenschaft handelt es sich um Daten, die an eine Eigenschaft in unserem Ansichtsmodellobjekt gebunden sind.Wie kann ich WPF-Bindung auf Steuerelementen erhalten, die noch nicht angezeigt wurden?

Wenn ich dieses Steuerelement auf einer TabControl-Seite oder einem Expander-Steuerelement platziere, scheint die Datenbindung nur dann zu erfolgen, wenn das Steuerelement zum ersten Mal sichtbar wird. Daher erhalte ich keine der Routingereignisse, bis ich auf die Registerkarte wechsle Die Steuerung ist aktiviert oder erweitert den Expander.

Gibt es eine Möglichkeit, die Datenbindung erzwingen zu können, bevor das Steuerelement angezeigt wird?

Antwort

0

Klingt, als ob Sie sich auf die Datenbindung verlassen, um das Routingereignis zu gene- raten, ist der falsche Ansatz. Stattdessen müssen Sie Ihr Model oder ViewModel ein Ereignis generieren lassen, wenn der Text geändert wird, und dann beobachten Sie dieses Ereignis von einem geeigneten Ort in Ihrer Ansicht.

+0

Ich stimme zu. Ich sollte das wahrscheinlich auf andere Weise angehen. Vielen Dank. –

0

Nicht sehr wahrscheinlich. WPF ist ein ziemlich effizienter Rahmen und wird keine Arbeit leisten, die es nicht unbedingt tun muss. Dazu gehören Szenarien wie Datenbindung. Warum sollten Sie eine Sammlung für eine Kontrolle auswerten, die vielleicht nie gezeigt wird?

Verwandte Themen