如何在执行后将ICommand从元素中分离出来?

时间:2014-05-17 01:50:20

标签: c# wpf mvvm-light

执行命令后,我想将它从StackPanel的{​​{1}}事件中分离出来,这样它就不会被再次调用。

有可能吗?

PreviewMouseDown

2 个答案:

答案 0 :(得分:0)

我可能过于简单了,但是你只是在调用一次之后尝试在视图模型中将MyCommand设置为null。

答案 1 :(得分:0)

您可以在视图模型中指定CanExecute条件,然后在方法运行一次后将其设置为False

这是一个快速查看模型,我使用Prism' DelegateCommand一起测试它。

public class MainViewModel
{
    public DelegateCommand MyCommand { get; set; }
    private bool canExecute = true;

    public MainViewModel()
    {
        MyCommand = new DelegateCommand(SayHi, () => canExecute);
    }

    public void SayHi()
    {
        MessageBox.Show("Hi");

        canExecute = false;
    }
}