Comment lier une propriété de modèle d'affichage à la propriété ListBox.SelectedItem?MVVM: liaison à ListBox.SelectedItem?
J'ai créé une démo MVVM simple pour essayer de comprendre celle-ci. Mon modèle d'affichage possède les propriétés suivantes:
private ObservableCollection<DisneyCharacter> p_DisneyCharacters;
public ObservableCollection<DisneyCharacter> DisneyCharacters
{
get { return p_DisneyCharacters; }
set
{
p_DisneyCharacters = value;
base.FirePropertyChangedEvent("DisneyCharacters");
}
}
private DisneyCharacter p_SelectedItem;
public DisneyCharacter SelectedItem
{
get { return p_SelectedItem; }
set
{
p_SelectedItem = value;
base.FirePropertyChangedEvent("SelectedItem");
}
}
Je souhaite lier la propriété SelectedItem à l'élément sélectionné dans la zone de liste. Voici le XAML pour la zone de liste:
<ListBox ItemTemplate="{StaticResource MasterTemplate}"
ItemsSource="{Binding Path=DisneyCharacters}"
SelectedItem="{Binding Path=Selectedtem, Mode=TwoWay}"
HorizontalAlignment="Stretch" />
Voici mon problème: Le modèle de vue propriété SelectedItem est pas mis à jour lorsque je change la sélection dans la zone de liste.
J'ai effectué un test dans lequel j'ai temporairement remplacé la propriété SelectedItem du modèle de vue par une propriété SelectedIndex et je l'ai liée à la propriété ListBox.SelectedIndex. Cette propriété a été mise à jour correctement - c'est simplement la propriété SelectedItem que je ne peux pas utiliser.
Alors, comment réparer la liaison SelectedItem? Merci de votre aide.
Un bon exemple d'utilisation d'une zone de liste dans MVVM. Merci – MrPurpleStreak