0

我正在使用 MVVM 模式学习 WPF,总体上进展顺利,但是我对某些按钮的启用/禁用状态有一个问题。

我有 3 个按钮,其IsEnabled状态应如下所示:

App Startup:  enabled | disabled | disabled 
Click first:  disabled | enabled | disabled 
Click second: enabled | disabled | enabled 
Click third:  enabled | disabled | enabled

所有按钮都附加了一个单独的命令,所以我知道它们何时被单击。但是我不确定如何将交互传递回窗口以设置IsEnabled其他按钮控件的状态。

我知道如何使用事件和代码来做到这一点,但我试图让它尽可能接近纯 MVVM。我也知道我的 ViewModel 上可以有一些属性可以绑定到IsEnabled按钮的属性,但这对我来说似乎有点不雅(但我可能错了!)。

有人可以给我一些关于如何实现这一目标的建议吗?

谢谢

4

1 回答 1

1

您想在此处使用数据绑定,因此视图模型上的布尔属性会在调用命令时发生更改,并且您的按钮将其IsEnabled属性绑定到该属性,在 XAML 中以声明方式进行。

这使您可以非常轻松地测试逻辑,独立于视图。您可以实例化您的视图模型,在视图模型上调用适当的方法,然后检查适当的布尔属性。

您可能还希望考虑MVVM 框架,因为命令有限制。

于 2013-11-11T16:27:39.963 回答