ビューモデルプロパティをListBox.SelectedItemプロパティにバインドするにはどうすればよいですか?MVVM:ListBox.SelectedItemへのバインド?
シンプルなMVVMデモを作成してこれを理解しようとしました。私のビューモデルには、次のプロパティがあります。
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");
}
}
リストボックスで選択した項目にSelectedItemプロパティをバインドします。ここでは、リストボックスのXAMLは次のとおりです。
<ListBox ItemTemplate="{StaticResource MasterTemplate}"
ItemsSource="{Binding Path=DisneyCharacters}"
SelectedItem="{Binding Path=Selectedtem, Mode=TwoWay}"
HorizontalAlignment="Stretch" />
ここに私の問題がある:私は、リストボックスの選択を変更するとビューモデルのSelectedItemプロパティが更新されていません。
私は一時的にビューモデルSelectedItemプロパティをSelectedIndexプロパティに置き換えたテストを行いました。これをListBox.SelectedIndexプロパティにバインドしました。そのプロパティはうまく更新されました - それは私が働くことができないSelectedItemプロパティです。
したがって、どのようにSelectedItemバインディングを修正できますか?ご協力いただきありがとうございます。
MVVMのリストボックスの使い方の良い例です。ありがとう – MrPurpleStreak