WPF: команда привязки с флажком - PullRequest
1 голос
/ 25 сентября 2019

Я довольно новичок в WPF и MVVM, так что это может быть очень простой вопрос.У меня есть приложение с кнопкой и флажком.После нажатия кнопки запускается команда, которая затем запускает скрипт.Флажок - это опция для просмотра интернет-браузера при запуске скрипта.Мне интересно, как я могу передать, если флажок установлен или нет, когда кнопка выбрана.Я изменил некоторые названия кодирования, чтобы они были более простыми.Вот мой 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();
    }
}

1 Ответ

3 голосов
/ 25 сентября 2019

Вы можете привязать IsChecked CheckBox к свойству в ViewModel.Что-то вроде этого должно работать:

<CheckBox Content="Option" IsChecked="{Binding ShowBrowser}"  />
public bool ShowBrowser {get; set;}

Затем вы можете использовать свойство ShowBrowser в вашем MainButtonClick методе

Или вы можете использовать командный параметр, как указал диманоидв комментариях.Например:

<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 класс может обрабатывать параметры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...