2008-11-04 3 views
-1

J'ai un TreeView bound to an XmlDataProvider. Le nom d'un noeud est reflété dans l'arborescence et les données du noeud se trouvent dans un TextBox. Lorsque vous cliquez sur un élément de l'arborescence, il charge les données dans le TextBox.Détection des modifications apportées aux données source à l'aide de XmlDataProvider et d'une zone de texte liée

Quelle est la meilleure façon de déterminer quand un utilisateur a modifié les données sources référencées par XmlDataProvider.

Je voudrais mettre un astérisque (*) à côté du nom de fichier pour dire que le document est sale et devrait être sauvegardé. Cela permettra également de déterminer si l'utilisateur est invité à enregistrer lorsque le programme quitte.

Malheureusement, lorsque le TextBox est mis à jour par la liaison bidirectionnelle, il déclenche l'événement TextChanged.

Existe-t-il un moyen de déterminer que l'événement TextChanged a été déclenché par le code de liaison bidirectionnelle plutôt que par l'utilisateur?

J'ai également essayé d'utiliser l'événement DataChanged sur le XmlDataProvider, mais cet événement semble se déclencher uniquement lors du chargement initial des données.

Je suppose que je pourrais piéger les touches dans le TextBox directement, mais il semble malpropre.

[Éditer] Il semble que PreviewTextInput semble fonctionner dans ce but ... Y a-t-il un meilleur moyen?

Répondre

0

PreviewTextInput a fait l'affaire.

Questions connexes