У меня есть сценарий, в котором у меня есть глобальное окно свойств (похожее на окно свойств в Visual Studio), которое привязано к свойству SelectedObject моей модели. У меня есть несколько разных способов просмотра и выбора объектов, поэтому первая попытка - связать их с SelectedObject напрямую. Например:TwoWay Binding to ListBox SelectedItem в нескольких списках в WPF
<ListBox ItemsSource="{Binding ActiveProject.Controllers}"
SelectedItem="{Binding SelectedObject, Mode=TwoWay}"/>
<ListBox ItemsSource="{Binding ActiveProject.Machines}"
SelectedItem="{Binding SelectedObject, Mode=TwoWay}"/>
Это хорошо работает, когда у меня есть более чем один элемент в каждом списке, но он терпит неудачу, если список содержит только один элемент. Когда я выбираю элемент, SelectedObject не обновляется, так как список все еще считает, что его исходный элемент был выбран. Я считаю, что это происходит потому, что двухсторонняя привязка просто игнорирует обновление из источника, когда SelectedObject не является объектом в списке, оставляя выбранный список List неизменным. Таким образом, привязки становятся не синхронизированными.
Кто-нибудь знает, как убедиться, что окна списка сбросят свой SelectedItem, когда SelectedObject отсутствует в списке? Есть ли лучший способ сделать это, чтобы не страдать от этой проблемы?