WPF MVVM을 통해 CommandParameter를 처리합니다
-
11-12-2019 - |
문제
WPF에서 꽤 Begginer. 확인란이 있으며 모든 확인 변경 사항이 IsChecked 매개 변수를 가져오고 일부 작업을 수행하는 명령을 Excute합니다.
내 xaml 파일에 다음 코드가 있습니다.
My ViewModel에서 다음 코드가 있습니다.
private ICommand _addSelectedItemsCommand;
public ICommand AddSelectedItemsCommand
{
get
{
if (_addSelectedItemsCommand == null)
{
_addSelectedItemsCommand = new RelayCommand(param => this.AddSelectedItems());
}
return _addSelectedItemsCommand;
}
}
private void AddSelectedItems()
{
Do something...
}
.
그러나 "Somthing"의 경우 iSchecked 매개 변수가 필요합니다. 어떻게 얻을 수 있습니까?
감사합니다
해결책
invokecommandaction 클래스.표현식 블렌드 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