WPF: Могу ли я заставить окно переоценить все его привязки и проверки? - PullRequest
7 голосов
/ 09 октября 2010

Могу ли я заставить окно переоценить все его привязки и проверки?

По какой-то причине он, кажется, игнорирует INotifyPropertyChanged.PropertyChanged в одной странной ситуации, и я ищу обходной путь для использования, пока не найду реальную причину.

Ответы [ 2 ]

8 голосов
/ 09 октября 2010

К сожалению, я не знаю способа заставить каждую привязку в окне переоценить. Частично проблема заключается в том, что большинство привязок объявляются не в Window, а в определенных дочерних объектах DependencyObject.

Вы можете использовать DependencyObject.InvalidateProperty , чтобы сделать недействительной одну привязку, но это должно быть сделано для каждого свойства в отдельности. Если привязано только несколько объектов, вы сможете использовать это для принудительного запроса их значений.

При этом я бы посоветовал выяснить первопричину - это, вероятно, будет лучшим решением в долгосрочной перспективе.

5 голосов
/ 09 октября 2010

Повышение PropertyChanged с String.Empty в качестве имени свойства. Это заставит все привязки в объекте перечитать все его привязки.

Если у вас возникли проблемы с привязкой, не забудьте проверить окно вывода на наличие ошибок привязки

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