回答
我有一個MainView/MainViewModel和一個SearchView/SearchViewModel。
我對填充了「性別」的對象列表中的MainView一個組合框(綁定到
ObservableCollection<Gender> Genders
在MainViewModel)
的MainViewModel有型人的屬性,它反過來又性別類型的屬性。 Gender對象具有ID和Description的屬性(說明顯示在組合中)。
ComboBox的SelectedItem屬性以雙向模式綁定到'Person.Gender'。
當使用此設置新的Person對象上的Gender的值時,一切都很好。然後允許用戶搜索現有的人員。我基於參數檢索數據並創建了一個Person對象列表,並通過MVVM Light Toolkit的Messenger將它們傳遞給SearchViewModel。然後這些以模態方式顯示在SearchView的網格中。當用戶選擇一個人時,這個(SelectedPerson)從SearchViewModel傳回到MainViewModel,再次使用MVVM Light的Messenger。
這是現在我卡住了一段時間。我編碼爲
Person.Gender = SelectedPerson.Gender
並期望組合框被更新爲正確的性別,但事實並非如此。
我搜索了綁定問題,發現了一個關於按正確順序使XAML ItemsSource和SelectedItems屬性的問題。我嘗試創建一個新的性別例如 Person.Gender =新性別{ID = SelectedPerson.Gender.ID ...等,但這並沒有工作。
然後我想到,儘管ComboBox中的Gender與SelectedPerson對象中的Gender有完全相同的屬性,但它並沒有使它變爲EQUAL,而是用人的術語來思考,而不是編程術語。與ComboBox相同的Gender對象位於ComboBox綁定的集合中(即ObservableCollection Genders)。因此,爲了得到它,我這樣做
if (SelectedPerson.Gender != null)
{
foreach (Gender g in Genders)
{
if (SelectedPerson.Gender.ID == g.ID)
{
Person.Gender = g;
break;
}
}
}
正如我所說的,這是可能明顯一些,但是當我本來卡住我沒有發現,這個樣子是沒有人描述的場景是這樣的任何解決方案。我會冒險猜測,在某些情況下,情景是相似的,但提問者沒有意識到,即對象的平等。
- 1. Silverlight MVVM - Twoway綁定不會觸發Datepicker
- 2. Popup和ComboBox綁定與Silverlight
- 3. ListBox TwoWay綁定到SelectedItem
- 4. Silverlight Combobox數據綁定競賽條件
- 5. Silverlight TextBlock在ComboBox中綁定到SelectedItem
- 6. Silverlight MVVM - Twoway綁定未在Listbox上觸發點擊
- 7. Silverlight Twoway綁定和回滾更改 - 如何?
- 8. IPv6綁定失敗
- 9. Silverlight GridView和Combobox
- 10. MVVM Combobox綁定
- 11. WPF Combobox綁定
- 12. Silverlight FluidLayout失敗
- 13. ComboBox Silverlight
- 14. 如何使用UserControl內的TwoWay綁定?
- 15. DependencyProperty綁定模式twoway但propertychangedeventhandler爲空
- 16. Dictionary到ListView TwoWay綁定 - 可能嗎?
- 17. 複選框綁定到布爾值twoway
- 18. WPF TwoWay將一些元素綁定到ObservableCollection
- 19. NinjectDependencyResolver失敗綁定ModelValidatorProvider
- 20. 與SO_REUSEADDR綁定()失敗
- 21. 的ElementName綁定失敗
- 22. 數據綁定失敗
- 23. FANN Python綁定失敗
- 24. WPF的綁定失敗
- 25. IPv6綁定失敗Linux
- 26. WPF MVVM Combobox綁定
- 27. 將TwoWay綁定更改爲PropertyChanged回調中的綁定項目
- 28. 數據綁定WPF組合框不起作用twoway
- 29. Silverlight回調失敗
- 30. 元素綁定Silverlight 3