2010-07-07 73 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

相關問題