2013-04-02 3 views
0

У меня есть сводная коллекция. После внесения изменений в его элементы из кода позади я хочу, чтобы View обновился. Но я не знаю, как уведомить мнение. Я попробовал INotifyCollectionChanged, но это не сработало для меня.Как отправить уведомление об изменении составной коллекции

protected ObservableCollection<ScriptParameterComboItem> cItems 

    public virtual CompositeCollection CItems 
    { 
     get 
     { 
      return new CompositeCollection {new CollectionContainer {Collection = cItems}}; 
     } 
    } 

    public void ConvertValue(params object[] parameters) 
    { 
     string newAverageOption = DisplayValueConverter.Convert(1, parameters); 
     var enumItem = cItems[1]; 
     enumItem.Value = newAverageOption; 
     RaiseCollectionChanged("CItems"); 
    } 


    protected void RaiseCollectionChanged(string property) 
    { 
     if(CollectionChanged != null) 
      CollectionChanged(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add)); 
    } 

ответ

1

Ваш ScriptParameterComboItem класс должен реализовывать INotifyPropertyChanged. Поэтому, когда меняется его свойства, слушатели будут уведомлены. Использование ObservableCollection помогает слушателям быть уведомленным, когда что-то есть добавлено к коллекции или удален от. Не изменять фактические данные в каждом отдельном элементе.