【问题标题】:Reusing a list of custom object in a ComboBox在 ComboBox 中重用自定义对象列表
【发布时间】:2011-09-08 17:55:38
【问题描述】:

我有一个应用程序,用户可以在其中选择各种颜色来自定义其 UI 的视觉外观。

我想使用组合框控件来显示命名的 Windows 颜色列表供他们选择。对于每个组合框项目,我想要一个颜色的小预览,然后是颜色的文本名称。所以我的组合框项目包含一个堆栈面板,其中包含一个填充了颜色的矩形和一个包含文本部分的文本块。

当他们打开下拉部分时,我尝试构建这个包含 140 多种颜色的列表,但这会产生可察觉的延迟,因为在创建具有不同填充颜色的 140 多种预览框时需要进行一些处理。我可以在进入屏幕时加载所有 4 个组合框,以消除打开下拉菜单时的延迟,但这会在屏幕最初加载时产生更明显的延迟。

理想情况下,我想做的是创建一个颜色项目的静态列表,可供所有用于用户选择颜色的组合框重复使用。

您不能将一个列表分配给多个控件。我该如何解决这个问题?

【问题讨论】:

  • 你能发布一些你的代码吗?

标签: wpf combobox


【解决方案1】:

我不确定您所说的“您不能将列表分配给多个控件”是什么意思。假设您的数据上下文中有一个 ColorList 属性,该属性公开了您的静态列表,并为每个组合框选择了颜色属性,您可以简单地绑定组合框,如下所示:

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

【讨论】:

  • 我认为 WPFNewb 分配给 Items,而不是 ItemsSource。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 2015-05-08
  • 1970-01-01
  • 2010-10-08
相关资源
最近更新 更多