在我的Silverlight 4应用程序中我有一个ObservableCollection,我将数据绑定到两个不同的列表框。 listboxitems显示MyClass-Object的内容。当我将项目添加到ObservableCollection时,新项目将在两个列表框中正确显示。
我已将绑定模式设置为双向,因此编辑listboxitems将自动更新模型。这项工作到目前为止。我的问题是,其他列表框的内容不会使用更新的模型进行更新。添加新项目将正确显示在其他列表框中,但内容的更新(我检查过的)不会。
任何想法如何实现:当我在一个列表框中更新内容时,其他列表框的内容应自动更新。
提前致谢,
弗兰克
答案 0 :(得分:2)
要扩展您的课程所需要实施的INotifyPropertyChanged
,并且您的属性需要将PropertyChanged
事件放入其设置者中。
public class MyClass : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged; // This may be named wrong
private string _myString = null;
public string MyString
{
get { return _myString; }
set
{
if(value == _myString)
return;
_myString = value;
var eh = PropertyChanged;
if(eh != null)
eh(this, new PropertyChangedEventArgs("MyString"));
}
}
}
MyString
属性将通知UI它已更改,这将触发绑定更新。
答案 1 :(得分:1)
您需要确保可观察集合中的对象实现INotifyPropertyChanged,并且当您的内容属性发生更改时,他们应该发布更改事件。