我的模板基本上是作爲一個簡單的調色板使用的ComboBox
。它填充了一個SolidColorBrush
對象的列表。根據匹配對象在XAML中設置ComboBox.SelectedItem
我也有一些數據保存了當前顏色的十六進制值以及將十六進制轉換爲SolidColorBrush
的轉換器。
我在嘗試的是根據我的DataSource中的顏色設置ComboBox
的SelectedItem
屬性。由於我的組合填充了SolidColourBrush
類型,對象和我的結合轉換器返回SolidColorBrush
,我認爲這將是簡單的話說:
SelectedItem="{Binding Color, Converter={StaticResource StringToBrush}}"
但是......它不工作:(
我測試過的結合是通過使用完全相同的價值爲ComboBox
的背景屬性在幕後工作。
因此,很明顯我不能隨便說的SelectedItem = [東西]這裏是[東西]基本上是一個對象,它等於我想要選擇的項目
這樣做的正確方法是什麼?當然,只有XAML風格的使用綁定纔是可能的,而且我不必爲了查找匹配而嘗試查找組合框中的所有項目來執行一些討厭的C#代碼(這看起來很老派)......?
的建議將是覆蓋''的SolidColorBrush的'Equals'功能。默認情況下,當比較兩個項目時,「Equals」檢查引用是否相同。你可以改變這種行爲,並使「Equals」來檢查例如顏色代碼是否相同。檢查[這個答案](http://stackoverflow.com/a/34140769/2279200)以供參考。 – Athafoud 2016-12-12 11:52:37