次のデータ テンプレートがあります (および対応するビュー モデルは示されていません)。
<DataTemplate DataType="{x:Type logic:SnapshotListViewModel}">
<ListBox ItemsSource="{Binding Snapshots}" />
</DataTemplate>
ItemsSource はビューモデル内にあるスナップショットのリストにバインドされています。私の目標は SelectedItem をクリアすることなので、リストボックスは最初の選択されていない状態に戻ります。ビュー モデルは IPropertyNotified を実装します。
次のように XAML にバインディングを追加しました。
<ListBox SelectedItem={Binding SelectedSnapshot} .... />
ビュー モデルで SelectedSnapshot = null を設定しましたが、プロパティで RaisePropertyChanged が呼び出されても何も起こりません。
SelectedItem の代わりに SelectedIndex を使用して再試行しました。まだ運がありません。
私は最終的に解決策を見つけました。これについては以下で詳しく説明します。