繁体   English   中英

WPF:将命令与复选框绑定

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM