Não é possível limpar a seleção ListBox usando SelectedItem = null - MVVM
Eu tenho o seguinte modelo de dados (e um modelo de exibição correspondente, não mostrado):
<DataTemplate DataType="{x:Type logic:SnapshotListViewModel}">
<ListBox ItemsSource="{Binding Snapshots}" />
</DataTemplate>
ItemsSource está vinculado a uma lista de instantâneos, encontrada dentro do viewmodel. Meu objetivo é limpar o SelectedItem, para que a caixa de listagem retorne ao seu estado inicial não selecionado. O modelo de exibição implementa IPropertyNotified.
Eu adicionei uma ligação no XAML assim:
<ListBox SelectedItem={Binding SelectedSnapshot} .... />
No modelo de exibição, defino SelectedSnapshot = null, mas nada acontece, mesmo que RaisePropertyChanged tenha sido chamado na propriedade.
Eu tentei novamente com SelectedIndex em vez de SelectedItem. Ainda sem sorte.
Eu finalmente encontrei a solução, que detalharei abaixo.