[英]WPF: Bind Command with Checkbox
我对 WPF 和 MVVM 很陌生,所以这可能是一个非常简单的问题。 我有一个带有按钮和复选框的应用程序。 单击按钮后,它会运行一个命令,然后运行一个脚本。 该复选框是在脚本运行时查看 Internet 浏览器的选项。 我想知道一旦选择了按钮,无论是否选中复选框,我如何才能传入。 我将一些编码名称更改为更基本的名称。 这是我的 Xaml:
<StackPanel Margin="10">
<CheckBox Content="Option" IsChecked="True" />
<Button Height="20"
Content="Run Script"
Command="{Binding Script }"
/>
</StackPanel>
这是 ViewModel:
class MainWindowViewModel
{
public ICommand script{ get; set; }
public MainWindowViewModel()
{
script = new RelayCommand(o => MainButtonClick());
}
private void MainButtonClick()
{
Program start = new Program();
start.Begin();
}
}
您可以将 CheckBox 的IsChecked
绑定到 ViewModel 中的属性。 像这样的东西应该工作:
<CheckBox Content="Option" IsChecked="{Binding ShowBrowser}" />
public bool ShowBrowser {get; set;}
然后,您可以在MainButtonClick
方法中使用ShowBrowser
属性
或者您可以使用命令参数作为评论中指出的 dymanoid。 像这样:
<CheckBox Name="ShowBrowser" Content="Option" IsChecked="True" />
<Button Height="20"
Content="Run Script"
Command="{Binding Script }"
CommandParameter="{Binding ElementName=ShowBrowser, Path=IsChecked}
/>
然后你的方法看起来像这样:
private void MainButtonClick(bool showBrowser)
{
Program start = new Program();
start.Begin();
}
这当然是假设您的RelayCommand
class 可以处理参数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.