我有一個場景,我有一個全局可用的屬性窗口(類似於Visual Studio中的屬性窗口),它綁定到我的模型的SelectedObject屬性。我有很多不同的方法來瀏覽和選擇對象,所以我的第一個嘗試是直接將它們綁定到SelectedObject。例如:雙向綁定到列表框SelectedItem WPF中的多個列表框
<ListBox ItemsSource="{Binding ActiveProject.Controllers}"
SelectedItem="{Binding SelectedObject, Mode=TwoWay}"/>
<ListBox ItemsSource="{Binding ActiveProject.Machines}"
SelectedItem="{Binding SelectedObject, Mode=TwoWay}"/>
如果每個列表中有多個項目,但如果列表只有一個項目,則會失敗。當我選擇該項目時,SelectedObject不會更新,因爲列表仍然認爲它的原始項目已被選中。我相信會發生這種情況,因爲當SelectedObject不是列表中的對象時,雙向綁定會簡單地忽略來自源的更新,而使列表的SelectedItem保持不變。這樣,綁定變得不同步。
有沒有人知道確保列表框在SelectedObject不在列表中時重置SelectedItem的方法?有沒有更好的方式來做到這一點,不會遭受這個問題?