Определение причины возникновения события ValueChanged привязки WPF - PullRequest
0 голосов
/ 16 июня 2009

Похоже, что события ValueChanged и SourceUpdated будут срабатывать просто путем установки DataContext. Кто-нибудь знает, как определить, действительно ли измененное значение является результатом какого-либо взаимодействия с пользователем?

Простой пример - наличие кнопки «Сохранить» в форме WPF, которая отключена до тех пор, пока пользователь фактически не изменит данные. Так как события ValueChanged и SourceUpdated срабатывают, когда установлен DataContext, я не могу просто включить кнопку «Сохранить», не определив, что на самом деле вызвало событие в первую очередь.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 июня 2009

Не зная более подробной информации о вашей реализации (вашей архитектуре пользовательского интерфейса и т. Д.), Я могу дать только общие рекомендации.

  1. Если у вас есть модель презентации, привяжите включенную кнопку «Сохранить» к свойству в вашем личном кабинете, что определяется изменениями, внесенными в другие свойства вашего личного документа.

  2. Если ваше кодирование напрямую связано с вашим выделенным кодом, отложите привязку кнопки Сохранить до ПОСЛЕ того, как вы установите DataContext.

Одна вещь, которую вы должны иметь в виду, заключается в том, что установка DataContext подобна изменению DataBinding всех элементов управления, в которых вы не устанавливаете Source явно. Полагаясь на DataContext, вы можете просто указать путь, но вы должны учитывать это каскадное поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...