Наблюдаемая коллекция со списком объектов

#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}"/>
  

Я надеюсь, что это поможет вам.