WPF中ComboBox控件,怎么同时显示相同的内容
时间: 2024-03-26 21:39:23 浏览: 200
可以利用ComboBox控件的ItemsSource属性和CollectionViewSource类来实现同时显示相同的内容。具体步骤如下:
1. 在XAML中创建一个CollectionViewSource对象,并将其Source属性设置为数据集合。
2. 将ComboBox控件的ItemsSource属性设置为CollectionViewSource对象。
3. 将ComboBox控件的IsDropDownOpen属性设置为True,以打开下拉列表。
4. 在CollectionViewSource对象的GroupDescriptions属性中添加一个PropertyGroupDescription对象,将其PropertyName属性设置为要分组的属性名称。
5. 在ComboBox控件的ItemTemplate属性中创建一个DataTemplate对象,用于显示每个分组的标题和内容。
具体实现可参考以下示例代码:
```
<Grid>
<Grid.Resources>
<CollectionViewSource x:Key="MyData" Source="{Binding MyItems}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Category"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
<DataTemplate x:Key="GroupTemplate">
<StackPanel>
<TextBlock Text="{Binding Path=Name}" FontWeight="Bold"/>
<ItemsControl ItemsSource="{Binding Path=Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</Grid.Resources>
<ComboBox ItemsSource="{Binding Source={StaticResource MyData}}"
ItemTemplate="{StaticResource GroupTemplate}"
IsDropDownOpen="True"/>
</Grid>
```
在这个示例中,MyItems是一个包含多个项的数据集合,每个项都有一个Category属性用于分组。通过CollectionViewSource对象和PropertyGroupDescription对象,将数据集合分组后绑定到ComboBox控件的ItemsSource属性中。在ItemTemplate属性中定义一个DataTemplate对象,用于显示每个分组的标题和内容。最后将ComboBox控件的IsDropDownOpen属性设置为True,以打开下拉列表,并显示分组后的数据。
阅读全文