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中使用数据模型的同时使用按钮_C#_Wpf_Mvvm - Fatal编程技术网

C# 如何在WPF中使用数据模型的同时使用按钮

C# 如何在WPF中使用数据模型的同时使用按钮,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在使用MVVM在WPF中创建一个应用程序。我有一个名为tab1的选项卡,它是一个用户控件,有一个关联的数据模型(但没有视图,因此没有ViewModel)。在tab1的内容中,有一个ListView,其中有一个按钮。问题是我希望这个按钮能工作。当tab1有一个相关联的Tab1ViewModel时,它就工作了,但我被告知它必须有一个数据模型,而不是ViewModel。我不相信数据模型可以支持命令,那么有人知道这方面的解决方法吗?或者,对于任何带有按钮的嵌套控件,真的只需要一个ViewModel吗

我正在使用MVVM在WPF中创建一个应用程序。我有一个名为tab1的选项卡,它是一个用户控件,有一个关联的数据模型(但没有视图,因此没有ViewModel)。在tab1的内容中,有一个ListView,其中有一个按钮。问题是我希望这个按钮能工作。当tab1有一个相关联的Tab1ViewModel时,它就工作了,但我被告知它必须有一个数据模型,而不是ViewModel。我不相信数据模型可以支持命令,那么有人知道这方面的解决方法吗?或者,对于任何带有按钮的嵌套控件,真的只需要一个ViewModel吗?

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

  • 如果“允许”,则可以继承数据模型并添加一些 “ViewModel功能”(类似于按钮的命令)
  • 如果“允许”,则具有包含数据模型的视图模型(在这种方法中,如果将视图绑定到嵌套的数据模型字段,则无法侦听属性更改)
  • 在视图的代码后面添加事件处理程序(这违反MVVM的指导原则)

  • 这两种解决方案不是很好,因此我建议您尝试解决导致无法在视图中使用视图模型的问题,并解决该问题

    它是一个用户控件,有一个关联的数据模型(但没有视图,因此没有视图模型)。“它不是视图;它是一个视图中的用户控件。是的,我不会在后面添加任何代码,因为这是对MVVM的,正如你所说,当涉及到MVVM时,用户控件也是一个视图,应该有一个视图模型绑定到它。是的,我倾向于同意,但负责我的人不同意。明天我会检查你的第一颗子弹和第二颗新子弹,谢谢