2011-09-08 60 views
0

我有一個應用程序,用戶可以在其中選擇各種顏色來自定義其UI的可視外觀。重新使用組合框中的自定義對象列表

我想使用組合框控件來顯示指定的Windows顏色列表供他們選擇。對於每個組合框項目,我想要一個顏色的小預覽,然後是該顏色的文本名稱。所以我的組合框項目包含一個帶有填充顏色的矩形的堆疊面板和一個包含文本部分的文本塊。

我嘗試在打開下拉部分時創建140多種顏色的這個列表,但這會產生可感知的延遲,因爲在創建具有不同填充顏色的140多個預覽框時有一些處理。我可以在進入屏幕時加載所有4個組合框,以便在打開下拉菜單時消除延遲,但這會在屏幕初始加載時產生更明顯的延遲。

理想情況下,我想要做的是創建一個顏色項目的單個靜態列表,可供所有用於用戶選擇顏色的組合框重用。

您無法將列表分配給多個控件。我怎樣才能解決這個問題?

+1

你可以張貼一些代碼的請。 –

回答

2

我不確定你的意思是「你不能將一個列表分配給多個控件」。假設你在你的數據上下文爲每個組合框ColorList財產暴露你的靜態列表,選擇顏色屬性,你可以簡單的綁定組合框,如下所示:

<ComboBox x:Name="One" ItemsSource="{Binding ColorList}" SelectedItem = "{Binding SelectedColorOne}"/> 
<ComboBox x:Name="Two" ItemsSource="{Binding ColorList}" SelectedItem = "{Binding SelectedColorTwo}"/> 
etc. 
+0

我認爲WPFNewb分配給Items,而不是ItemsSource。 –