MVVM多个ViewModels通过串口/ USB通信

时间:2018-01-26 06:47:07

标签: c# mvvm serial-port viewmodel mvvm-light

我必须开发一个应用程序,它将与通过串行端口/ USB连接的外部设备进行通信。

以下是基本用户界面的图表:

UI Diagram Concept

有一个MainWindow(View)和MainWindowViewModel。

在左侧,有一个子视图列表(带复选框),右侧有一个内容控件(或者适当的页面等)。选择适当的子视图后,将显示其各自的子视图。每个子视图都包含配置选项(以Radio,Checkbox,Dropdown等形式)。 用户将根据要求配置选项,最后单击读取按钮(MainWindow的一部分)。 按下Read按钮后,将根据所选的子视图启动与串行端口/ USB的通信。

设计此类应用程序的最佳方法是什么?

  1. 每个子视图都有自己的ViewModel(属性绑定各自的视图),它们将彼此独立地与串行端口通信。在这种情况下,如何处理状态机,因为一次只允许一个串口连接?
  2. 所有选项都将由MainWindowViewModel读取,它将开始通信,并填充子视图中的所有数据。 (这将导致巨大的 ViewModel,因为有很多选项/设置要处理每个子视图)
  3. 还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

将一个类与可以通信的视图模型分开,并使用MvvmLight NotificationMessage类向该类发送数据并从该类接收。