WPF按钮被隐藏但是" CanExecute"方法上升

时间:2015-04-27 09:04:45

标签: c# wpf commandbinding

在我的应用程序中,我在面板中设置了一些按钮,这些按钮设置为在某些时候折叠,这些按钮具有"CanExecute"方法的命令绑定。我希望在面板不可见时停止执行"CanExecute"方法中的逻辑。 如果我看不到按钮,我就不需要花费资源来知道它是否可以执行。 我可以尝试将该面板的可见性绑定到"CanExecute"方法,但我希望每个按钮都有一个解决方案,所以如果它们不可见则不会浪费时间。

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您可以在按钮不可见时删除命令绑定。

  
      
  1. 注册CommandBinding:   myUIelement.CommandBindings.Add(mycommand的);
  2.   
  3. 取消注册CommandBinding:   myUIelement.CommandBindings.Remove(mycommand的);
  4.   
  5. 取消注册所有CommandBindings:myUIelement.CommandBindings.Clear();
  6.   

答案 1 :(得分:0)

如果对象类型有参数

,请使用它

即。

_someCommand = new RelayCommand(
                    p => someCommandExecute((someObject)p),
                    p => p is someObject);

或尝试验证值,如果它没有参数

_someCommand = new RelayCommand(
                    p => someCommandExecute((someObject)p),
                    p => someObject != null);

我不确定您是否尝试过这样的事情,但如果您可以发布一些代码示例,那将会有所帮助。

这也可以帮助您https://rachel53461.wordpress.com/2011/05/08/simplemvvmexample/