gpt4 book ai didi

wpf - 组合框中的项目分组

转载 作者:行者123 更新时间:2023-12-03 08:22:59 25 4
gpt4 key购买 nike

我有一个 ListView,它包含两种类型的对象,单个对象和多个对象。
单个是普通的 TextBlock,而多个是带有项目的 ComboBox。

我试图对 ComboBox 中的项目进行分组,但没有成功。是否可以?或者我应该采取不同的方法?

我正在努力实现的目标:

[ComboBox v]
[Header ]
[ Item]
[ Item]
[Header ]
[ Item]

最佳答案

有可能的。使用 ListCollectionView使用 GroupDescription 作为 ItemsSource 并为您的 ComboBox 提供 GroupStyle。请参阅下面的示例:

XAML:

<Window x:Class="StackOverflow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:StackOverflow"
xmlns:uc="clr-namespace:StackOverflow.UserControls"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<ComboBox x:Name="comboBox">
<ComboBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ComboBox.GroupStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</Window>

代码隐藏:
namespace StackOverflow
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{

public MainWindow()
{
InitializeComponent();
//this.comboBox.DataContext = this;

List<Item> items = new List<Item>();
items.Add(new Item() { Name = "Item1", Category = "A" });
items.Add(new Item() { Name = "Item2", Category = "A" });
items.Add(new Item() { Name = "Item3", Category = "A" });
items.Add(new Item() { Name = "Item4", Category = "B" });
items.Add(new Item() { Name = "Item5", Category = "B" });

ListCollectionView lcv = new ListCollectionView(items);
lcv.GroupDescriptions.Add(new PropertyGroupDescription("Category"));

this.comboBox.ItemsSource = lcv;
}


}

public class Item
{
public string Name { get; set; }
public string Category { get; set; }
}

}

关于wpf - 组合框中的项目分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3585017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com