Мои привязки данных не оцениваются до загрузки элемента управления. Я получаю события изменения свойства после загрузки элемента управления, почему? - PullRequest
4 голосов
/ 23 октября 2010

У меня очень интересная проблема, и я долго ломал голову над ней.

Я новичок в WPF и связанных с ним вещах, таких как MVVM и все.

У меня естьокно, в котором я размещаю пользовательский элемент управления, в котором размещен TabControl.

Этот элемент управления вкладки имеет настраиваемые переключатели и комбинированные поля, которые предоставляют несколько свойств зависимости, теперь, когда эти пользовательские элементы управления загружаются, автор проверяет значенияи делает «что-то конкретное», что является предполагаемым поведением.Однако в моем случае при загрузке элемента управления значения DP имеют нулевые значения.Я вижу, что события изменения свойства DP запускаются после загрузки этого элемента управления только в моем случае.Это работает нормально в других окнах.

Это немного странно для меня, так как я ожидаю, что DP будут привязаны к связанным значениям до загрузки элемента управления, но я не вижу такого поведения здесь.

Я прочитал на MSDN, что DP должны быть установлены правильно перед событием загрузки, и в примере приложения я вижу, что он ведет себя как в соответствии с MSDN.

Привязка происходит правильно, так как нет ошибок в выводеwindow + Я получаю DP - Свойство также изменило события, но это происходит только после загрузки (я не знаю, почему ??)

Любая помощь действительно будет оценена.

РЕДАКТИРОВАТЬ:

После того как я проверил выходные трассы, я впервые получаю следующие привязки для всех привязок. Я открываю диалоговое окно.

Невозможно получить значение, используя привязку, и допустимого запасного значения не существует;вместо этого используется значение по умолчанию

Я не уверен, почему все они не могут быть найдены ???Это проблема синхронизации, я использую наследование значения свойства контекста DATA каждый где .....

1 Ответ

0 голосов
/ 23 октября 2010

Ваши значения DP устанавливаются перед загрузкой, но им присваиваются привязки, которые не оцениваются до тех пор, пока не загрузится пользовательский интерфейс (и поэтому не предоставляют значения для DP).Значения, установленные напрямую (обычно в XAML), применяются к DP сразу во время загрузки, потому что это значение гарантированно будет доступно.Привязки часто могут зависеть от таких вещей, как DataContext или другие элементы визуального дерева (ElementName или RelativeSource), которые могут быть недоступны до тех пор, пока загрузка не будет завершена, поэтому процесс оценки привязки происходит позже.

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