我正在使用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
属性,但这对我来说似乎有点不合适(但我可能是错的!)。
有人可以就如何实现这一点给我一些建议吗?
由于
答案 0 :(得分:1)
您希望在此处使用数据绑定,因此视图模型上的布尔属性会在调用命令时发生更改,并且您的按钮会在XAML中以声明方式绑定其IsEnabled
属性。
这使您可以非常轻松地测试逻辑,而与视图无关。您可以实例化视图模型,在视图模型上调用适当的方法,然后检查相应的布尔属性。
您可能还希望考虑MVVM framework,因为指挥有限制。