2010-08-17 70 views
9

我有一個組合框,其ItemsSource綁定到選項的靜態List<CustomSettings>。 ComboBox是綁定到CustomObject類的窗體的一部分,並且該類的其中一個屬性是CustomSettingProperty。WPF - Combobox SelectedItem沒有設置?

我想將ComboBox的SelectedItem綁定到CustomObject中指定的屬性,但SelectedItem="{Binding Path=CustomSettingProperty}"未設置默認選定項目。使用斷點我可以看到它調用get;方法,所以我認爲問題可能在於CustomSettingProperty與List<CustomObject>分開創建,所以WPF不認爲它是相同的項目。

有沒有簡單的方法來做到這一點?或者,也許是另一種選擇,因爲CustomSettings類包含一個Id?

+0

你可以給CustomSettingProperty的代碼?可能是您如何設置它的一個例子? – jsmith 2010-08-17 19:35:56

回答

20

如果選中的項目與List中包含的項目不同,您必須重寫CustomObject中的Equals()以讓ComboBox知道它是同一個對象。

如果是相同的實例,也許這是唯一的,如BindingMode設置爲雙向一件簡單的事情:

SelectedItem="{Binding Path=CustomSettingProperty,Mode=TwoWay}" 
+1

謝謝!我不相信我沒有考慮重寫Equals ...我不會再犯這個錯誤(我希望) – Rachel 2010-08-17 19:45:06

+0

我有同樣的問題,但我已被重寫'Equals()'我怎麼能設置BindingMode?注意:我正在使用c#和Winforms – 2013-03-14 03:17:27

+0

默認情況下,模式是雙向的嗎? – 2013-08-16 12:27:07

相關問題