UpdateSourceTrigger действует только при обновлении источника в результате изменений в элементе управления.Это не имеет ничего общего с тем, что вы делаете с самим объектом.
Я настоятельно не рекомендую перезаписывать ссылку на коллекцию, потому что любые обработчики событий, которые также нуждаются в событии CollectionChanged
коллекции, будут нуждатьсябыть повторно подключенным.
Я не уверен, как обрабатываются уведомления, если вы привязываетесь к свойствам зависимостей, но если вы изменили свой источник, и это не DP, вам нужно уведомить о привязке.Это можно сделать, внедрив INotifyPropertyChanged
.
например
private ObservableCollection<Stuff> data = new ObservableCollection<Stuff>();
public ObservableCollection<Stuff> Data
{
get { return data ; }
set
{
data = value;
NotifyPropertyChanged("Data");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
Редактировать: Протестированный обмен коллекцией, хранящейся в DP, для меня это работает какожидается, и список обновляется, отображая новую коллекцию.