Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在viewmodel中使用多个命令_C#_Wpf_Mvvm - Fatal编程技术网

C# 在viewmodel中使用多个命令

C# 在viewmodel中使用多个命令,c#,wpf,mvvm,C#,Wpf,Mvvm,如何对viewmodel中的两个不同按钮使用两个不同的命令 我的要求是在我的页面中使用2个按钮 我已经实现了1个按钮,但无法实现多个按钮 有谁能给我举一个例子,说明如何使用MVVM在viewmodel中使用多个命令 我对MVVM非常陌生,所以请帮助我。1创建RelayCommand类: public class RelayCommand : ICommand { private readonly Predicate<object> _canExecute; priva

如何对viewmodel中的两个不同按钮使用两个不同的命令

我的要求是在我的页面中使用2个按钮

我已经实现了1个按钮,但无法实现多个按钮

有谁能给我举一个例子,说明如何使用MVVM在viewmodel中使用多个命令


我对MVVM非常陌生,所以请帮助我。

1创建RelayCommand类:

public class RelayCommand : ICommand
{
    private readonly Predicate<object> _canExecute;
    private readonly Action<object> _execute;

    public RelayCommand(Predicate<object> canExecute, Action<object> execute)
    {
        this._canExecute = canExecute;
        this._execute = execute;
    }

    public event EventHandler CanExecuteChanged
    {
        add => CommandManager.RequerySuggested += value;
        remove => CommandManager.RequerySuggested -= value;
    }

    public bool CanExecute(object parameter)
    {
        return _canExecute(parameter);
    }

    public void Execute(object parameter)
    {
        _execute(parameter);
    }
}
3视图中的绑定命令:

    <Button Content="Button 1" Command="{Binding Command1}"/>
    <Button Content="Button 2" Command="{Binding Command2}"/>

希望对你有帮助

您是在使用PRISM library还是想在没有它的情况下实现它?@Sagar我没有使用PRISM library视图模型中的命令通常是ICommand类型的属性。您可以在任何视图模型类中拥有任意数量的此类属性。那么你的问题是什么?非常感谢你,它帮助了你:
    <Button Content="Button 1" Command="{Binding Command1}"/>
    <Button Content="Button 2" Command="{Binding Command2}"/>