J'ai connecté un SelectedItemChangeEvent d'un ComboBox à un ICommand dans mon modèle de vue. Tout semble bien fonctionner mais je ne sais pas comment obtenir le SelectedItem de la ComboxBox. Je pense que j'ai besoin d'utiliser le CommandParameter de l'EventToCommand - puis-je lier cela à quelque chose dans mon ViewModel qui a l'élément selectedItem de la ComboBox? Je l'ai essayé ceci:Mvvm-Light Silverlight, en utilisant EventToCommand avec un Combobox
<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>
et dans mon modèle de vue:
public ICommand SelectCategoryCommand
{
get
{
return new SelectCategoryCommand(this);
}
}
public CategoryType SelectedCategory
{
get; set;
}
et 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;
}
}
Cependant, le paramètre dans la méthode d'exécution de l'ICommand est toujours nulle. Je suis assez inexpérimenté avec SilverLight alors je pense que je manque vraiment quelque chose d'évident ici. Quelqu'un peut-il aider? Merci d'avance!
Vous devriez marquer votre réponse particulièrement parce qu'elle a résolu votre problème. – kevindaub
thanx un homme de bundle, sauvez ma journée – zeeshan