Процесс CommandParameter через WPF MVVM
-
11-12-2019 - |
Вопрос
Я вполне начал на WPF. У меня есть Checkbox, и я хочу, чтобы все изменения проверки будут предоставлять команду, которая получает ischecked параметр и выполнять некоторые действия.
У меня есть следующий код в моем файле XAML:
На моем просмотру у меня есть следующий код:
private ICommand _addSelectedItemsCommand;
public ICommand AddSelectedItemsCommand
{
get
{
if (_addSelectedItemsCommand == null)
{
_addSelectedItemsCommand = new RelayCommand(param => this.AddSelectedItems());
}
return _addSelectedItemsCommand;
}
}
private void AddSelectedItems()
{
Do something...
}
.
Но для «делай что-то» мне нужен поиск параметра, как я могу получить это?
Спасибо
Решение
Вы должны использовать InvoCeCommandcationaction класс.Вы можете найти его в выражении SDK SDK или вы можете просто добавить Это пакет Nuget к вашему проекту,
<CheckBox
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<ei:InvokeCommandAction Command="{Binding AddSelectedItemsCommand}" CommandParameter="..." />
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
. Другие советы
В вашем ViewModel RelayCommand выглядят как
private RelayCommand<string> AddSelectedItemsCommand{get;set;}
.
и в вашем коде конструктора ViewModel выглядят как
AddSelectedItemsCommand=new RelayCommand<string>(AddSelectedItemsMethod);
void AddSelectedItemsMethod(string AddItem)
{
Your Code Goes Here.
}
. Не связан с StackOverflow