如何在WPF中使用DataModel时使用按钮

时间:2015-09-02 22:44:03

标签: c# wpf mvvm

我正在使用MVVM在WPF中创建应用程序。我有一个名为tab1的选项卡,它是一个UserControl并且具有关联的DataModel(但没有View,因此没有ViewModel)。在tab1的内容中,有一个ListView,里面是一个按钮。问题是,我希望按钮工作。它在tab1具有关联的Tab1ViewModel时有效,但我被告知必须有一个DataModel而不是ViewModel。我不相信DataModels可以支持命令,所以有人知道解决方法吗?或者是否真的需要成为任何带按钮的嵌套控件的ViewModel?

1 个答案:

答案 0 :(得分:0)

没有与视图关联的视图模型是违反MVVM准则的“种类”。 我可以考虑两种解决方案:

  1. 如果您是“允许”,则可以继承DataModel并添加一些 “ViewModel功能”(类似于按钮的命令)
  2. 如果您是“允许”,请使用包含数据模型的视图模型(在此方法中,如果将视图绑定到嵌套数据模型字段,则会失去侦听属性更改的能力)
  3. 在视图的代码隐藏中添加事件处理程序(这是违反MVVM的指导原则)
  4. 这两个解决方案并不是很好,所以我建议您尝试解决导致您不能在视图中使用视图模型并解决问题的事实的问题。