Обновить все привязки в UserControl сразу
мне нужно обновить все привязки на моем UserControl, когда его видимость изменится на видимую. Почти все мои привязки привязаны к свойству DataContext пользовательского элемента управления, поэтому я пытаюсь обновить цель этой привязки:
BindingOperations.GetBindingExpressionBase(this, UserControl.DataContextProperty).UpdateTarget();
но я null
в результате GetBindingExpression(..)
метод, и мне интересно, использую ли я это неправильно.
кроме того, есть ли другой хороший способ обновить все привязки на элементе управления (которые используют DataContext в качестве источник.)
2 ответов
Ну, ты может просто повторно назначить DataContext
:
var dataContext = DataContext;
DataContext = null;
DataContext = dataContext;
FYI, сброс свойства до его значения (т. е.DataContext = DataContext
) не работает.
вы используете BindingOperations.Метод GetBindingExpressionBase для неправильного свойства. Вы должны использовать его в свойствах, которые привязываются к свойству DataContext, а не к самому свойству DataContext.