У меня есть поле со списком с источником элементов, прикрепленным с помощью простой привязки. Есть ли способ обновить эту привязку после загрузки поля со списком?
c#
wpf
data-binding
Techee
источник
источник
Ответы:
Вы можете использовать выражения привязки:
Но, как заметил Блиндмейс, вы также можете запускать уведомления об изменениях, кроме того, если ваша коллекция реализуется
INotifyCollectionChanged
(например, реализована вObservableCollection<T>
), она будет синхронизироваться, поэтому вам не нужно ничего делать из этого.источник
если вы используете mvvm и ваш источник элементов находится в вашем vm. просто вызовите INotifyPropertyChanged для своего свойства коллекции, когда хотите обновить.
источник
INotifyPropertyChanged
, но вам придется оставить порт частным для эту оболочку и, следовательно, необходимо написать свойство и метод для всего на этом порту, который вы используете в другом месте проекта, чтобы гарантировать, что свойства, которые вы хотите уведомить, всегда проходят через оболочкуnameof(YourCollectionProperty)
буквальной строки. Это предотвращает рефакторинг ошибок и более ясно показывает, что на самом деле задумано. Это, конечно, где вы не можете использоватьCallerMemberName
атрибут, который даже лучшеЧтобы добавить мои 2 цента, если вы хотите обновить свой источник данных новым значением вашего элемента управления, вам нужно
UpdateSource()
вместо этого вызватьUpdateTarget()
:источник
Версия для MultiBinding ...
источник
Попробуйте использовать
BindingExpression.UpdateTarget()
источник
Я получал данные из серверной части и обновлял экран с помощью всего одной строчки кода. Это сработало. Не уверен, зачем нам реализовывать интерфейс. (Windows 10, UWP)
источник