WPF如何将两个具有不同项目源的组合框合并为一个

时间:2016-01-21 16:03:50

标签: wpf data-binding combobox itemsource

假设我目前有两个组合框,一个显示制作列表的内容,另一个显示视图模型中四季列表的内容。< / p>

<ComboBox Grid.Column="1" Grid.Row="0" Margin="3" ItemsSource="{Binding Productions}" SelectedItem="{Binding SelectedProduction}" DisplayMemberPath="DisplayName" />
<ComboBox Grid.Column="1" Grid.Row="0" Margin="3" ItemsSource="{Binding Seasons}" SelectedItem="{Binding SelectedProduction}" DisplayMemberPath="DisplayName" />

我需要做的是将这两个Comboboxes合二为一。当点击Combobox时,它应该显示一个标题,说明Productions和每个产品下面应该出现,并且低于它应该对Seasons应该做同样的事情。所以图形上看起来应该是这样的:

Combobox Desired Outcome


制作
产量1
production2
production3
四季
1季
season2
season3

  1. 我想,为了将两个列表用作ItemSource,我可以 制作一个包含生产和季节清单的清单,但是 还有另一种方法可以将它们绑定在同一个组合框中吗?
  2. 然后甚至可以让它看起来像在图片中?

1 个答案:

答案 0 :(得分:0)

我会使用专门为此类用途设计的CompositeCollection

对于分组,评论中提到的链接@Floc显示了如何使用Grouping

有了这两个,我认为你可以取得成功。只要这两个类派生出一些共同的东西来暴露类似的属性,这应该非常简单。