Mvvm-Light Silverlight unter Verwendung von EventToCommand mit einer Combobox
Ich habe das SelectedItemChangeEvent einer ComboBox mit einem ICommand in meinem Ansichtsmodell verknüpft. Alles scheint gut zu funktionieren, aber ich weiß nicht, wie ich das SelectedItem der ComboxBox bekommen soll. Ich denke, ich muss den CommandParameter des EventToCommand verwenden. Binde ich dies an etwas in meinem ViewModel, das das selectedItem der ComboBox enthält? Ich habe es versucht:
<ComboBox
Width="422"
Height="24"
DisplayMemberPath="Name"
ItemsSource="{Binding CategoryTypes}"
SelectedItem="{Binding SelectedCategory}"
>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<MvvmLight:EventToCommand
Command="{Binding SelectCategoryCommand,Mode=TwoWay}"
CommandParameter="{Binding SelectedCategory, Mode=TwoWay}"
MustToggleIsEnabledValue="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
und in meinem Ansichtsmodell:
public ICommand SelectCategoryCommand
{
get
{
return new SelectCategoryCommand(this);
}
}
public CategoryType SelectedCategory
{
get; set;
}
und der ICommand
public class SelectCategoryCommand : ICommand
{
private RowViewModel _rowViewModel;
public SelectCategoryCommand(RowViewModel rowViewModel)
{
_rowViewModel = rowViewModel;
}
public bool CanExecute(object parameter)
{
return true;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
CategoryType categoryType = (CategoryType) parameter;
}
}
Der Parameter in der Execute-Methode des ICommand ist jedoch immer null. Ich bin noch ziemlich unerfahren mit SilverLight, daher denke ich, dass mir hier etwas Offensichtliches fehlt. Kann jemand helfen? Danke im Voraus