WPF - 为什么在自动布线时使用路由命令?

时间:2017-09-25 16:12:23

标签: wpf binding command

好的,所以这里的问题令我感到困惑。人们似乎花费了很长的时间来实现路由命令等,因此可以在视图模型中实现在WPF UI中调用的命令。是的,我知道这可以很容易地为按钮点击编写单元测试,例如针对视图模型而不是必须按下按钮来测试一个功能。但是,当您双击XAML表单上的控件时,Visual Studio会在页面后面的代码中为该单击创建一个存根。现在在代码隐藏中,如果你在ViewModel中调用一个方法,它具有你希望实现的按钮点击功能,它仍然能够让你能够从单元测试中测试这个功能,而不必去实现所有类的实现。路由命令只是为了您可以从UI绑定它们。 为了更好地解释这个, 假设您在XAML中有一个按钮定义如下:

<Button Content="Go!"  Height="20" Width="50" Click="Button_Click" />

当您双击它时,会生成以下代码,您需要做的就是在viewmodel中调用处理代码。在下面的代码中,该方法在ViewModel中称为GoPressed,“vm”是对ViewModel类的引用

 private void Button_Click(object sender, RoutedEventArgs e)
        {
            vm.GoPressed();
        }

显然,我在这里遗漏了一些东西,因为没有人似乎正在做我的建议,但对我来说,听起来有点'纯粹主义'试图让所有代码远离代码隐藏时肯定会有将事件处理程序保留在其中并使用viewmodel实现功能没有任何问题。这两个世界中最好的不是吗?

0 个答案:

没有答案