2009-02-26 3 views
0

J'ai un contrôle de zone de texte personnalisé qui déclenche un événement routé lorsque sa propriété TEXT change. Cette propriété de texte est liée à une propriété de notre objet view-model. Lorsque je place ce contrôle sur une page TabControl ou un contrôle Expander, il semble que la liaison de données ne se produise que lorsque le contrôle devient visible pour la première fois, donc je ne reçois aucun des événements routés jusqu'à ce que je passe à l'onglet le contrôle est sur ou étendre l'expandeur.Comment puis-je obtenir une liaison WPF sur des contrôles qui n'ont pas encore été affichés?

Est-il possible de forcer la liaison de données avant que le contrôle ne soit affiché?

Répondre

0

Vous semblez que vous vous fiez à la liaison de données pour générer l'événement routé est la mauvaise approche. Au lieu de cela, vous devez faire en sorte que votre modèle ou ViewModel génère un événement lorsque le texte est modifié, puis vous regardez cet événement à partir d'un emplacement approprié dans votre vue.

+0

Je suis d'accord. Je devrais probablement aborder cela d'une autre manière. Merci. –

0

Peu probable. WPF est un cadre assez efficace et ne fera aucun travail qu'il ne doit absolument pas faire. Cela inclut des scénarios tels que la liaison de données. Pourquoi s'embêter à exercer une collection pour un contrôle qui pourrait ne jamais être montré?

Questions connexes