當不可觀察時綁定對象的列表屬性是否有最佳實踐方法?例如,如果我們有:當屬性不可觀察時綁定
public class Band
{
public string Name { get; set; }
public List<Musician> Members { get; private set; }
// other properties here
}
如果我的視圖模型具有Band
財產,我想我的UI綁定到Members
財產,如何在用戶界面上顯示更新到Members
財產?成員不可觀察。
目前的想法是創建一個DTO,它是Band
類的精確副本,但是使Members
爲ObservableCollection
。然後UI將綁定到這個DTO。在視圖模型關閉之前,它會將DTO映射回適當的Band
類。這似乎是一個開銷。有沒有更好的辦法?
編輯 - 另一種選擇
我只是進行了座談,在人,用別人這件事。這個想法是在視圖模型上添加一個ObservableCollection
屬性。然後,在視圖模型的構造函數中,使用實體來填充ObservableCollection
。用戶完成編輯後,使用更新的ObservableCollection
重置實體上的List
。
我打算建議在ViewModel中放置可觀察屬性,但是從編輯中可以看出,您已經在實現這一目標。畢竟,ViewModel是爲了模型化視圖,所以應該在可觀察的屬性在一個完美的MVVM世界:) – Rachel