Come si associa una proprietà del modello di visualizzazione alla proprietà ListBox.SelectedItem?MVVM: associazione a ListBox.SelectedItem?
Ho creato una semplice demo MVVM per provare a capirlo. Il mio modello di visualizzazione ha queste proprietà:
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");
}
}
Voglio associare la proprietà SelectedItem all'elemento selezionato nella casella di riepilogo. Ecco il codice XAML per la casella di riepilogo:
<ListBox ItemTemplate="{StaticResource MasterTemplate}"
ItemsSource="{Binding Path=DisneyCharacters}"
SelectedItem="{Binding Path=Selectedtem, Mode=TwoWay}"
HorizontalAlignment="Stretch" />
Ecco il mio problema: la proprietà SelectedItem vista del modello non viene aggiornato quando cambio la selezione nella casella di riepilogo.
Ho eseguito un test in cui ho temporaneamente sostituito la proprietà SelectedItem del modello di visualizzazione con una proprietà SelectedIndex e l'ho associata alla proprietà ListBox.SelectedIndex. Quella proprietà aggiornata bene - è solo la proprietà SelectedItem che non riesco a far funzionare.
Quindi, come posso correggere il binding SelectedItem? Grazie per l'aiuto.
Un buon esempio di come utilizzare una casella di riepilogo in MVVM. Grazie – MrPurpleStreak