2011-09-28 96 views
0

我的視圖模型實現了INotifyPropertyChanged,使其可用於我的視圖的屬性。它使可用的對象集合不會實現INotifyPropertyChanged。在綁定元素上調用屬性

我的集合在我的視圖中綁定到ItemControl,ItemTemplate用於獨立顯示每個項目。項目模板綁定到我的集合成員的「名稱」屬性。

如何告訴我的視圖更新我的收藏成員的屬性更改?

回答

1

你需要或者實施INotifyPropertyChanged爲對象的集合(推薦的方法),也可以手動刷新的東西的結合就像

myItemsControl.GetBindingExpression(
    ItemsControl.ItemsSourceProperty).UpdateTarget(); 

如果您在ViewModel中,您可能可以在您的Collection類中引發以下PropertyChanged事件,但我不確定是否會更新單個項目

// My PropertyChanged method is usually called RaisePropertyChanged 
RaisePropertyChanged("MyCollection"); 

你也可以做Mirimon的建議,並將其值設爲null,然後再返回,儘管我個人建議採用不同的方法。

1

您必須爲集合成員實現INotifyPropertyChanged。或者你可以在視圖模型重置您的收藏:

public void Reset() { 
    List<TestData> temp = YourCollection; 
    YourCollection = null; 
    YourCollection = temp; 
}