将模型中的更改传播到Silverlight中的视图

将模型中的更改传播到Silverlight中的视图,silverlight,observablecollection,model-view,Silverlight,Observablecollection,Model View,在我的Silverlight 4应用程序中,我有一个ObservableCollection,它将数据绑定到两个不同的列表框。listboxitems显示MyClass对象的内容。当我向ObservableCollection添加一个项目时,新项目将正确地显示在两个列表框中 我已经将绑定模式设置为双向,这样编辑listboxitems将自动更新模型。到目前为止,这是可行的。我的问题是,另一个列表框的内容不随更新的模型更新。添加一个新项目将正确地显示在另一个列表框中,但内容的更新(我选中了)不会显

在我的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”);我知道那是错的,但我记不清确切的语法了。谢谢你的更正。