2010-07-07 38 views
1

我有一个ObservableCollection,我将数据绑定到两个不同的列表框。列表框显示MyClass对象的内容。当我将项目添加到ObservableCollection时,新项目正确显示在两个列表框中。在模型中传播更改以在Silverlight 4应用程序中查看Silverlight

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

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

由于提前,
弗兰克

回答

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属性将通知它改变了用户界面,这将触发绑定更新。

+0

感谢您的代码!一个错误是,Event调用必须如下所示:PropertyChanged(this,new PropertyChangedEventArgs(“Name”)); – Aaginor 2010-07-09 10:51:22

+0

我知道这是错误的,但我不记得头顶上的确切语法。感谢您的更正。 – Stephan 2010-07-09 14:30:49

1

,你需要确保观察集合在你的对象实现INotifyPropertyChanged,当你的内容性质改变,他们应该张贴变更事件。

+0

这已经完成了工作,谢谢! – Aaginor 2010-07-09 10:50:04

相关问题