У меня есть TreeView, привязанный к XmlDataProvider . Имя узла отражается в дереве, а данные узла находятся в TextBox. Когда вы нажимаете на элемент дерева, он загружает данные в TextBox.
Как лучше всего определить, когда пользователь изменил исходные данные, на которые ссылается XmlDataProvider.
Я хотел бы поставить звездочку (*) рядом с именем файла, чтобы сказать, что документ грязный и должен быть сохранен. Это также определит, будет ли напоминать пользователю о сохранении при выходе из программы.
К сожалению, когда TextBox обновляется с помощью двусторонней привязки, он запускает событие TextChanged.
Есть ли способ определить, что событие TextChanged было инициировано кодом двусторонней привязки, а не пользователем?
Я также пытался использовать событие DataChanged на XmlDataProvider, но это событие возникает только при начальной загрузке данных.
Полагаю, что я мог бы перехватывать нажатия клавиш в TextBox напрямую, но это выглядит грязно.
[Редактировать] Похоже, что PreviewTextInput работает для этой цели ... Есть ли лучший способ?