【发布时间】:2018-05-24 11:48:58
【问题描述】:
我正在使用带有 MVVM 模式的 WPF。我有一个按钮,我有两个命令。此外,我有一个复选框。我想将不同的命令绑定到按钮上,具体取决于复选框 IsChecked 与否,例如
如果我点击我的按钮,它会显示一个消息框;
如果我选中复选框并单击我的按钮,它会显示一个新窗口或其他内容..
我对此有一个解决方案,但我认为可以有更好的解决方案:
我的视图模型:
ICommand command1 { get; set; }
ICommand command2 { get; set; }
ICommand commandSelector
{
get
{
if (checkbox)
{
return command1;
}
else
{
return command2;
}
}
private set { }
}
我的 XAML:
<Button Label="DO" Command="{Binding commandSelector}"/>
【问题讨论】:
-
我会简单地使用 2 个按钮和多种方法中的一种来使一次只有 1 个按钮可见:
Visibility绑定、数据模板、模板选择器、样式数据触发器等。
标签: c# wpf xaml mvvm data-binding