Представьте себе следующее:
class Repository
{
private ObservableCollection<ModelClass> _allEntries;
public ObservableCollection<ModelClass> AllEntries
{
get { return _allEntries; }
set { _allEntries = value; }
}
public void RefreshDataFromDB()
{
_all = new ObservableCollection(GetMyData()); // whatever method there is
}
}
Теперь есть пара элементов управления, которые привязываются к этой коллекции, например ::100100
<ListView ItemsSource="{Binding Repository.AllEntries, ElementName=Whatever}"/>
Теперь проблема в том, что если я вызову RefreshDataFromDB
, привязки будут потеряны (по крайней мере, так кажется), поскольку _all теперь указывает на новую часть памяти, а привязки все еще используют старую ссылку. INotifyPropertyChanged
не помогает мне в этом случае (например, вставка в RefreshDataFromDB
не очень помогает).
Вопрос будет заключаться в том, как бы вы справились со случаем, когда вы изменили коллекцию и хотите обновить привязки ее потребителей?