1
任何人都可以解釋爲什麼我不能使用新重置綁定數據?WPF綁定更新
使用MVVM,數據綁定到ListBox。
DataList已經實現了INotifyPropertyChanged。
在方法的OnChange()
public void OnChange()
{
data = new ObservableCollection<DataList>(); // not work
data.Add(new DataList() { Text = "Changed 1" });
data.Add(new DataList() { Text = "Changed 2" });
}
但
public void OnChange()
{
data.Clear(); // works fine
data.Add(new DataList() { Text = "Changed 1" });
data.Add(new DataList() { Text = "Changed 2" });
}
視圖模型
ObservableCollection<DataList> data;
public ObservableCollection<DataList> Data
{
get { return data; }
set { data = value; }
}
public ViewModel()
{
this.Command_OnChange = new RelayCommand(ExecuteCommand1, CanExecuteCommand);
data = new ObservableCollection<DataList>();
data.Add(new DataList() { Text = "Default 1" });
data.Add(new DataList() { Text = "Default 2" });
}
public void OnChange()
{
data.Add(new DataList() { Text = "Changed 1" });
data.Add(new DataList() { Text = "Changed 2" });
}
感謝。我可以通過直接修改數據來看到,它會觸發set和issue屬性更改爲View。在OnChange()方法中使用「數據」而不是「數據」可以嗎? – aicu
@aicu。說實話,沒有理由在那裏創建新的'ObservableCollection';只需使用'data.Clear'就足夠了。如果你想完成的話,那麼你必須使用'OnPropertyChanged()'通知修改。但是,在那裏使用'Data'屬性是很好的。沒有任何錯誤。 –