WPF MVVM按钮启用状态

时间:2013-11-11 16:19:24

标签: wpf xaml mvvm

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

我有3个按钮,IsEnabled状态应该遵循:

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

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

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

有人可以就如何实现这一点给我一些建议吗?

由于

1 个答案:

答案 0 :(得分:1)

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

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

您可能还希望考虑MVVM framework,因为指挥有限制。