В WPF вашему классу обычно требуется реализовать INotifyPropertyChanged . Этот интерфейс предоставляет событие PropertyChanged, которое «уведомляет» об изменении свойства.
Вот пример из CodeProject
// Declare the PropertyChanged event
public event PropertyChangedEventHandler PropertyChanged;
// OnPropertyChanged will raise the PropertyChanged event passing the
// source property that is being updated.
private void OnPropertyChanged(object sender, string propertyName)
{
if (this.PropertyChanged != null)
{
PropertyChanged(sender, new PropertyChangedEventArgs(propertyName));
}
}
Обычно вы вызываете такой метод внутри установщика для свойства привязки.
Вы можете использовать ObservableCollection, как предлагает Хенк, поскольку ObservableCollection реализует этот интерфейс и имеет встроенное уведомление об изменениях (добавление, удаление и т. Д.). Обратите внимание, что создание новой коллекции ObservableCollection не вызовет уведомление
this.BindingCollection = new ObservableCollection(myList);
так что вам придется поднять уведомление самостоятельно
OnPropertyChanged(this, "BindingCollection");