传播模型中的更改以在Silverlight中查看

时间:2010-07-07 16:35:06

标签: silverlight observablecollection model-view

在我的Silverlight 4应用程序中我有一个ObservableCollection,我将数据绑定到两个不同的列表框。 listboxitems显示MyClass-Object的内容。当我将项目添加到ObservableCollection时,新项目将在两个列表框中正确显示。

我已将绑定模式设置为双向,因此编辑listboxitems将自动更新模型。这项工作到目前为止。我的问题是,其他列表框的内容不会使用更新的模型进行更新。添加新项目将正确显示在其他列表框中,但内容的更新(我检查过的)不会。

任何想法如何实现:当我在一个列表框中更新内容时,其他列表框的内容应自动更新。

提前致谢,
弗兰克

2 个答案:

答案 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,并且当您的内容属性发生更改时,他们应该发布更改事件。