将模型中的更改传播到Silverlight中的视图
在我的Silverlight 4应用程序中,我有一个ObservableCollection,它将数据绑定到两个不同的列表框。listboxitems显示MyClass对象的内容。当我向ObservableCollection添加一个项目时,新项目将正确地显示在两个列表框中 我已经将绑定模式设置为双向,这样编辑listboxitems将自动更新模型。到目前为止,这是可行的。我的问题是,另一个列表框的内容不随更新的模型更新。添加一个新项目将正确地显示在另一个列表框中,但内容的更新(我选中了)不会显示 如何实现的任何想法:当我更新一个列表框中的内容时,另一个列表框的内容应该自动更新 提前感谢,将模型中的更改传播到Silverlight中的视图,silverlight,observablecollection,model-view,Silverlight,Observablecollection,Model View,在我的Silverlight 4应用程序中,我有一个ObservableCollection,它将数据绑定到两个不同的列表框。listboxitems显示MyClass对象的内容。当我向ObservableCollection添加一个项目时,新项目将正确地显示在两个列表框中 我已经将绑定模式设置为双向,这样编辑listboxitems将自动更新模型。到目前为止,这是可行的。我的问题是,另一个列表框的内容不随更新的模型更新。添加一个新项目将正确地显示在另一个列表框中,但内容的更新(我选中了)不会显
Frank您需要确保observable集合中的对象实现,并且当您的内容属性更改时,它们应该发布更改事件 要扩展luke所说的内容,类需要实现
INotifyPropertyChanged
,属性需要在其setter中抛出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它已更改,这将触发绑定更新。感谢您的代码!一个错误是,事件调用必须如下所示:PropertyChanged(这是新的propertychangedventargs(“Name”);我知道那是错的,但我记不清确切的语法了。谢谢你的更正。