我有一个WPF应用程序,他们的菜单正在使用命令功能。一切都很好,当我点击菜单中的按钮时,命令就会运行。但是,我无法获得按钮的IsEnabled状态来尊重我的命令的CanExecute部分。从WPF中的命令访问控件
一个挑战是需要查看你在UI中做什么的命令。例如,一个命令应该只在ListBox中的某些项被选中时才可用,因此我需要获得对ListBox的引用......但是由于该命令在我的视图模型(MVVM模式)中公开,所以它没有访问UI(顺便说一下,菜单在一个用户控件[parent = mainwindow]中,而ListBox在另一个用户控件[parent = mainwindow]中)。
此外,即使我硬编码命令的CanExecute方法返回false,该按钮的Enabled属性不会更改...该命令不会触发,但它不会更改...令人沮丧。我想我需要修改/提高CanExecuteChanged事件,但我不知道什么时候应该这样做(找不到一个好的示例)。
反馈?
检出MVVMLight ...我喜欢Messger类的想法...谢谢! – 2010-06-15 15:43:35