#wpf #c#-4.0 #observablecollection
#wpf #c #-4.0 #наблюдаемая коллекция
Вопрос:
Может ли наблюдаемая коллекция уведомлять об изменении внутреннего списка?
ObservableCollection<List<TimeSeriesData>> ChartLines =
new ObservableCollection<List<TimeSeriesData>>();
И если я изменю список, сможет ли он уведомлять об изменениях?
Комментарии:
1.
ObservableCollection
Может уведомить вас, если она изменится. Она ничего не может сказать вам о каких-либо изменениях в элементах, которые она содержит.2. @JeffMercado спасибо
Ответ №1:
Вам необходимо реализовать INotifyPropropertyChanged
для вашего объекта T и для свойства, которое вы ObservableCollection
представляете:
private ObservableCollection<MyViewModel> _myCollection;
public ObservableCollection<MyViewModel> MyCollection
{
get
{
return _myCollection;
}
set
{
_myCollection= value;
OnPropertyChanged();
}
}
Вам также необходимо реализовать INotifyPropropertyChanged
для всех членов MyViewModel
:
public class MyViewModel : ViewModelBase
{
private string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set
{
_myProperty= value;
OnPropertyChanged();
}
}
}
Кроме того, вы не должны забывать об UpdateSourceTrigger в XAML для MyProperty, если вы хотите видеть обновления во время выполнения:
<TextBox Text="{Binding MyProperty, UpdateSourceTrigger=PropertyChanged}"/>
Я надеюсь, что это поможет вам.