我目前正在使用MVVM格式的WPF / Xaml开发应用程序。
我试图从一个按钮运行2个命令来关闭控件并删除控件所基于的对象。
创建这些命令的视图模型是独立的,因此我不确定如何在View模型中执行此操作。
我希望有一个解决方案,如果可能的话,只需在Xaml中运行这两个命令
必要时的代码
<Button Grid.Column="4"
Command="{Binding DeleteCustom}"
Visibility="{Binding IsCustom}"/>
我想要运行的另一个命令叫做
CancelCommand
我希望有人可以提供帮助
答案 0 :(得分:1)
只有一个Command
属性可以设置为单个ICommand
,但您可以在视图模型中创建另一个命令属性,该属性执行这两个命令并绑定到此命令:
public ICommand CompositeCommand { get; } = new RelayCommand<object>((arg) =>
{
DeleteCustom.Execute(null);
CancelCommand.Execute(null);
});
答案 1 :(得分:0)
也许如果你在基类中编写命令并覆盖它
ViewModelBase
{
public virtual ICommand CompositeCommand { get; } = new RelayCommand<object>((arg) =>
{
DeleteCustom.Execute(null);
CancelCommand.Execute(null);
});
protected virtual DeleteCustom(object arg)
{
/.....
}
protected virtual CancelCommand(object arg)
{
/....
}
//..........
}
FirstViewModel : ViewModelBase
{
// ...............
protected override void DeleteCustom(object arg)
{
}
// ..........
}
SecondviewModel : ViewModelBase
{
// ...............
protected override void CancelCommand(object arg)
{
}
// ..........
}