Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wpf中的MVVM,如何从服务引用向模型添加ObservebleObject_C#_Wpf_Mvvm - Fatal编程技术网

C# wpf中的MVVM,如何从服务引用向模型添加ObservebleObject

C# wpf中的MVVM,如何从服务引用向模型添加ObservebleObject,c#,wpf,mvvm,C#,Wpf,Mvvm,我得到了一个连接到wcf服务引用的WPF客户端应用程序 我的型号仅来自服务参考 我想为每个模型创建一个viewmodel,如何添加NotifyPropertyChangedEvent而不将每个属性从模型手动添加到viewmodel 我从mvvm的角度看到,模型可以从ObservebleObject中删除,唯一的问题是模型是在其他地方创建的,我只是在获取引用 有什么想法吗 谢谢我认为不必将INotifyPropertyChanged的实现放在模型中。您只需在ViewModel中实现它 为什么您的视

我得到了一个连接到wcf服务引用的WPF客户端应用程序

我的型号仅来自服务参考

我想为每个模型创建一个viewmodel,如何添加NotifyPropertyChangedEvent而不将每个属性从模型手动添加到viewmodel

我从mvvm的角度看到,模型可以从ObservebleObject中删除,唯一的问题是模型是在其他地方创建的,我只是在获取引用

有什么想法吗


谢谢

我认为不必将
INotifyPropertyChanged
的实现放在
模型中。您只需在
ViewModel
中实现它


为什么您的
视图
需要告诉
模型
(通过
视图模型
)某些内容已更改?我认为它应该只告诉
ViewModel
已经发生了变化。然后让
查看模型
模型

每次调用服务上的方法时,它都会返回一个新的DTO。它永远不会返回同一个实例,也不能使用服务来操作一个对象实例——通信中使用的所有数据都是瞬时的


因此,这些实例永远无法更新(它们不是模型),因此实现
INotifyPropertyChanged
将毫无意义。相反,您需要编写一个视图模型并将DTO复制到其中。视图模型是实现INotifyPropertyChanged的
INotifyPropertyChanged
的地方

是的,我也这么认为,但这意味着我需要在viewmodel中为模型中的每个属性创建一个属性。。否?否,您只需要创建那些要在ViewOk中显示的属性。谢谢您的回答,我将在视图模型上执行此操作。我完全同意Tim的看法。我发现svcutil创建的数据类实现INotifyPropertyChanged非常令人困惑,尽管它们的属性通常不会更改。好的,感谢您的回答,我将在视图模型上执行此操作