MVP和丰富的用户界面

Jef*_*ers 5 c# mvp

我想为我的应用程序实现MVP模式.实际上是MVP Passive View.所以我遇到了一个问题,这很容易,但我不能决定走哪条路,所以我想问你大师,如何正确使用MVP并显示丰富的UI.

我的意思是,我们假设我们需要显示一些数据,而客户希望它是TreeView.需要的是,如果用户选择不同的treenode,则应用程序会使用新数据或类似内容更新自身.此时,我不确定如何实现View.(所有视图逻辑都转到演示者)

我不认为暴露WinForms类是个好主意

ISomeForm : IView {
 //Presenter will take control of this TreeView.
 TreeView Host {
  get;
  }
}
Run Code Online (Sandbox Code Playgroud)

或暴露我的数据模型

ISomeForm : IView {
 //View knows how to display this data
 List<MyDataNodes> Items {
  get;
  set;
 }
}
Run Code Online (Sandbox Code Playgroud)

或使用其他View界面.

ISomeForm : IView {
 //Presenter knows what Views presenter should display.
 List<IDataView> Items {
  get;
  set;
 }
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Max*_*lov 1

我会选择视图界面。

在 WPF MVVM 中,视图分离越多,管理 UI/逻辑交互就越容易。