我有一個ComboBox
其ItemSource
綁定到一個字符串列表(idealy我會使用一個枚舉),這是使用MVVM模式完成的。Silverlight組合框不顯示綁定項目#
現在我想綁定一個對象到ComboBox
,它被稱爲SelectedUser
,我想綁定它的屬性:UserType
,這是一個字符串。
所以我有這樣的:
<ComboBox ItemsSource="{Binding Path=Usertypes}" SelectedValue="{Binding Mode=TwoWay, Path=SelectedUser.UserType}" />
它的工作原理,它確實改變了所選用戶的價值,如果我用它玩,但問題是,它不會顯示在ComboBox
除非什麼我選擇一個用戶,然後更改ComboBox
選擇,然後它可以工作,但僅適用於該用戶。
我想,當我加入那些ComboBox
沒有表現出任何東西玩弄DisplayMemberPath
,SelectedValuePath
和SelectedItem
, (仍有選項可供選擇,但他們看不到什麼的)。
那麼我該怎麼做?這是一個錯誤? 我不得不提,我有另一個ComboBox
有一個整數列表,它工作正常。
更新:
我被告知,我得到這個問題,因爲我比較ComboBox中字符串的字符串,實際上並不相同。
我的字符串來自實體框架通過RIA服務。 (User.UserType) 當它將它與ComboBox ItemSource中的字符串列表進行比較時,由於某種奇怪的原因,它們並不相等。
而且我也聽說過,我可能必須重寫該檢查的Equal方法。 但我不確定在哪裏以及如何這樣做。
是的,SelectedUser實現INotifyPropertyChanged。正如我所提到的,其他ComboBox(和TextBoxes)工作正常。 – Notter 2011-02-17 16:03:07