MVVM: ListBox.SelectedItem へのバインディングが更新されていませんか? 質問する

MVVM: ListBox.SelectedItem へのバインディングが更新されていませんか? 質問する

ビュー モデル プロパティを 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 バインディングを修正するにはどうすればよいでしょうか? ご協力ありがとうございます。

ベストアンサー1

まあ、そこにあります。実物と同じくらい大きいです。XAML では、次のビュー モデル プロパティにバインドしていました。

Selectedtem
       ^^

残念ながら、実際の名前は ですSelectedItem。つまり、このコードは実際に機能します。私は今日の午後早くに問題を解決し、その後、午後の残りと夕方ずっとウェブを調べて、スペルの間違いに気付きました。

妻は今日の午後3時にこう言いました。「ほら、それは小さなものになるだろう。「そして、その通りになりました――手紙がなくなってしまいましたI。まあ、少なくとも今は寝ることができます。」

おすすめ記事