我想這個問題可能已經被回答了,如果是這種情況,我會立即刪除。我是WPF的新手(真的是C#的新手),我儘可能地努力遵循MVVM,但是我非常努力地找到一種方法,在我的Model上不實現INotifyPropertyChanged
。使用MVVM,我如何在預定義的對象集合上實現INotifyPropertyChanged?
我的模型包含從另一個參考創建的預定義對象的集合。在模型中,我擁有在Task
完成時更新的屬性。
CustomObject - API
public class CustomObject
{
private string _myTaskOutput;
public CustomObject()
{
_myTaskOutput = MyTaskMethod();
}
//MyTaskMethod()
//Get & Setter for _myTaskOutput;
}
的Util - API
public static class Util
{
public IEnumerable<CustomObject> GenerateObjects()
{
var customObjectCollection = SomeHelperMethod();
return customObjectCollection;
}
}
型號
public class CustomObjectCollectionModel
{
private IEnumerable<CustomObject> _customObjectCollection;
public CustomObjectCollectionModel()
{
_customObjectCollection = Util.GenerateObjects();
}
//Get & Setter for IEnumerable<CustomObject>
}
的對象引用不會改變,所以我相信有一個ObservableCollection
出了問題(這是正確的?)和實施INotifyPropertyChanged
上CustomObject
作品如預期,但我明白這不是做事的正確方法。
「並在CustomObject上實現INotifyPropertyChanged按預期工作,但我理解這不是正確的做事方式。」是什麼讓你說這不是正確的方法? – Steven
@Steven大多數關於MVVM的答案都是關於MV的。我猜這是因爲從視圖而不是ViewModel直接綁定到Model。 – Kitson88
@Steven爲了給你一些背景,我爲我的投資組合創建了這個應用程序,希望能夠登錄我的第一個開發人員角色,所以我想確保它是正確的。 – Kitson88