2009-07-25 77 views
0

我綁定一個對象(名爲客戶端)與ObservableCollection(名爲Contacts)屬性到我的Silverlight視圖。我的客戶類在is上有幾個字符串屬性,ObservalbeCollection名爲Contacts。我的視圖模型上有一個名爲Client(實現INotifyPropertyChanged)的屬性,它包含Client對象。如果我在視圖列表框綁定到ObervableCollection這樣的對象:使ViewModel屬性可見到綁定在Silverlight

的ItemsSource =「{綁定路徑= Client.Contacts,模式=雙向}」

,並添加一個聯繫人項目收集,該視圖正確更新,並顯示我新添加的聯繫人。這一切都很好。

如果我創建這樣 公衆的ObservableCollection聯繫上我的ViewModel聯繫人屬性 { 得到 { 回報Client.Contacts; } 並綁定列表框來

的ItemsSource = 「{綁定路徑=聯繫人,模式=雙向}」

視圖從不更新。

我的聯繫人項目添加到客戶端這樣的:

Client.Contacts.Add(newContact)

爲什麼不聯繫的列表框更新?我怎樣才能改變它,所以呢? Client.Contacts綁定可以使用嗎?在添加新聯繫人之後暫停代碼顯示新的新聯繫人對象正在添加到集合中,但視圖沒有看到添加。

回答

0

它看起來像當綁定沒有執行到達時執行ItemsSource =「{綁定路徑=聯繫人,模式= TwoWay}」。你能否驗證你是否在ViewModel的構造函數中實例化集合,因爲我覺得在綁定時沒有設置聯繫人實例(空)

+0

我解決了我遇到的問題。將項目添加到集合中時,請執行以下操作: Client.Contacts.Add(newContact) 綁定永遠不會顯示對基礎屬性的更改。因此,爲了讓綁定知道我已經更新了它的一個屬性,我觸發了Contact屬性的PropertyChanged事件,現在綁定被通知。在我的情況下,ItemsSource可以綁定到Contacts屬性並響應更改。 感謝您的幫助! – DaveB 2009-07-26 04:07:00

相關問題