C# 该模型应该如何在MVVM中实现?
我正在创建一个与一个或多个服务通信的简单网络应用程序,因此我计划使用一些队列(用于传出消息和传入消息)、一个表、一个包含每个活动连接的状态的列表等:换句话说,这些是确保应用程序自身功能所需的数据结构 此应用程序还必须配备一个图形界面,显示应用程序本身的部分内部功能:例如,队列的填充状态、连接的状态(检测速度等)。。根据模型-视图-模型模式,模型由GUI中显示的数据组成:在此应用程序中,上述数据结构表示模型。换句话说,模型实现了应用程序的业务逻辑 ViewModel应该实现C# 该模型应该如何在MVVM中实现?,c#,.net,mvvm,C#,.net,Mvvm,我正在创建一个与一个或多个服务通信的简单网络应用程序,因此我计划使用一些队列(用于传出消息和传入消息)、一个表、一个包含每个活动连接的状态的列表等:换句话说,这些是确保应用程序自身功能所需的数据结构 此应用程序还必须配备一个图形界面,显示应用程序本身的部分内部功能:例如,队列的填充状态、连接的状态(检测速度等)。。根据模型-视图-模型模式,模型由GUI中显示的数据组成:在此应用程序中,上述数据结构表示模型。换句话说,模型实现了应用程序的业务逻辑 ViewModel应该实现INotifyPrope
INotifyPropertyChanged
接口,以便通知视图发生了更改,但是模型如何与ViewModel通信?阅读之后,我意识到,INotifyPropertyChanged
接口是由模型实现的。解释得多一点,但有点让我困惑:
INotifyPropertyChanged-应进入ViewModel和Model(如果需要)
如果需要,为什么?
我应该什么时候实现这个接口?
我什么时候不应该实施它
此外,没有实现INotifyPropertyChanged
接口:如果我使用它,我应该用实现该接口的类包装它吗
最后,模型应该是只读的,这意味着用户不能使用GUI更改内部数据结构的内容。如何做到这一点
在MVVM设计模式中,关系非常简单,并且是单向的。视图知道它的ViewModel,而ViewModel知道该模型。如果模型已更新,则ViewModel需要以某种方式知道,以便能够反映更新并将其传播到视图中。一种方法是让模型实现INotifyPropertyChanged,并让ViewModel实现相应的事件处理程序。如果所有更改都是从UI驱动的,并被推回到模型中,那么这可能不是必需的
在MVVM设计模式中,关系非常简单,并且是单向的。视图知道它的ViewModel,而ViewModel知道该模型。如果模型已更新,则ViewModel需要以某种方式知道,以便能够反映更新并将其传播到视图中。一种方法是让模型实现INotifyPropertyChanged,并让ViewModel实现相应的事件处理程序。如果所有更改都是从UI驱动的,并被推回到模型中,那么这可能不是必需的
模型如何与ViewModel通信
你想怎么做都行。在我们编写的大多数应用程序中,视图模型调用业务逻辑层(模型)。但是,如果需要立即通知视图模型(事件)模型的更改,可以在模型上实现INotifyPropertyChanged。或者您可以简单地让视图模型订阅模型上的事件
此外,字典没有实现INotifyPropertyChanged接口:如果我使用它,我应该用实现该接口的类来包装它吗?
您只需要更改视图模型实现INotifyProperty。视图模型(字典)中的属性将只调用NotifyPropertyChanged(或您的实现看起来像什么)
最后,模型应该是只读的,这意味着用户不能使用GUI更改内部数据结构的内容。如何做到这一点?
不要向用户提供让他们更改数据的功能。以一种方式进行绑定,或者干脆不向他们提供用于进行更改的API。
模型如何与ViewModel通信
你想怎么做都行。在我们编写的大多数应用程序中,视图模型调用业务逻辑层(模型)。但是,如果需要立即通知视图模型(事件)模型的更改,可以在模型上实现INotifyPropertyChanged。或者您可以简单地让视图模型订阅模型上的事件
此外,字典没有实现INotifyPropertyChanged i