2011-09-08 47 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。 –