对组合框中的项目进行分组

2023-12-09

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

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

我想要实现的目标:

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

有可能的。用一个列表集合视图使用 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; }
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对组合框中的项目进行分组 的相关文章

  • 当 DataTable 为空时,DataGrid 显示空行

    我有一个DataGrid dg1 绑定到DataTable 数据集 表 代码运行良好并且DataGrid正在显示数据DataTable正确 但是 如果我Clear the DataTable the DataGrid也很清楚 但留下一个空行
  • System.Windows.Threading.Dispatcher.Invoke(System.Delegate, System.Object[]) 何时添加?

    使用我的应用程序的一些人似乎越来越 System MissingMethodException Method not found System Object System Windows Threading Dispatcher Invok
  • WPF DataGrid 排序后滚动到顶部

    我有一个使用数据网格的 Net 4 0 WPF 应用程序 目前 按列排序后 网格的滚动位置保持在排序前的位置 对于此应用程序 我需要在任何排序后滚动到网格顶部 我尝试过像这样处理排序事件 Private Sub myDataGrid Sor
  • C# - 如何防止组合框中的鼠标滚轮滚动?

    我有一个组合框 我想阻止用户使用鼠标滚轮滚动项目 有没有简单的方法可以做到这一点 C VS2008 Use the 鼠标滚轮 http msdn microsoft com en us library system windows form
  • WPF 3D - 在复杂几何体上映射渐变画笔

    我想问是否有人知道如何在 WPF 3D 中的复杂对象上映射渐变画笔 结果应该类似于 matlab 中的 3D 图像 例如 3D 函数 假设您有一些想要可视化的 3 维数据 并且想要通过颜色区分某些级别的值 给定一个 GradientBrus
  • 将快速文本输入发送到另一个进程(窗口)

    我正在编写一个 C WPF 程序 它将文本消息发送到另一个程序的窗口 我有一个宏程序作为我的键盘驱动程序 Logitech g15 的一部分 它已经做到了这一点 尽管它不会将击键直接发送到进程 而是发送到当前聚焦的窗口 它运行良好 但我也需
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 如何从 JavaFX 中的 ComboBox 中获取所选项目?

    我有组合框cbxTabPane 包含选项卡 选项卡 t 和一个按钮b1 所以点击这个按钮b1 它添加了一个新选项卡t在 TabPane 中 并在 ComboBox 中添加一个新项目cbx包含相同名称的选项卡 问题是我不知道如何从中获取该物品
  • 带有移动向前/向后按钮的自定义列表框

    我有一个带有左 右重复按钮的自定义列表框 可以使用内容模板滚动其内容 如下所示
  • WPF Treeview,如何更改缩进

    我的树视图基本上有 文件夹 节点 以及不包含其他项目的项目下面的一层 因此 不需要用于展开 折叠图标的空间 在第 2 层 我可以放弃这个图标空间从而减少缩进吗 项目 在示例 机场 中 应向左移动一些像素 重要提示 基本上是寻找代码解决方案
  • 从字节数组创建 BitmapImage

    我正在创建一个包含任意值的字节数组 并希望将其转换为 BitmapImage bi new BitmapImage using MemoryStream stream new MemoryStream data try bi BeginIn
  • 如何在 WPF 中设置覆盖全局样式的特定控制元素设置?

    我通过应用程序范围的资源字典为应用程序中的按钮定义了全局样式 样式如下所示 来自另一个 SO 示例
  • WPF 本地化扩展 MVVM 绑定

    我正在尝试绑定在 ViewModel 中声明的名为 SampleName 的属性 这里 SampleName 是关键 但是 当尝试下面的代码时 它显示为空
  • Python Tkinter 自动完成组合框与 LIKE 搜索?

    我正在尝试使用预定义的值填充 Tkinter 组合框以供选择 它正在填充 我可以输入并获得建议 然而 为了做到这一点 我必须明确知道前几个字符 如果我知道字符串中间或末尾的一些文本 它是没有用的 因为组合框只执行 LIKE 搜索而不是 LI
  • 从 BitmapImage 获取支持的图像格式

    如何获取 System Windows Media Imaging BitmapImage 支持的图像格式列表 我正在用 C WPF 编写一个简单的图像处理工具 BitmapImage 类是更有用的位图类之一 因为它能够从多种格式进行解码
  • 密码盒和 MVVM

    我们有以下场景 MVVM 用户界面 用户可以在其中输入密码 实际上是一个PasswordBox 应该做一些工作的服务器 服务器连接到一些需要身份验证的数据库 我已经读过这个关于MVVM中PasswordBox的问题 https stacko
  • 将 ARGB 拆分为字节值

    我有一个 ARGB 值存储为 int 类型 它是通过调用 ToArgb 来存储的 我现在想要来自 int 值的各个颜色通道的字节值 例如 int mycolor 16744448 byte r g b a GetBytesFromColor
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • WPF 对 DataGrid 内的 TextBlock 进行全局样式设置

    我遇到了一个非常奇怪的问题 我正在尝试将全局样式应用于一个中的多个控件DataGrid 它们中的大多数完全按照我的预期工作 然而 对于TextBlock永远不会被应用 样式为ComboBox TextBox Label 和其他几个都被应用到
  • WPF 从主线程以外的其他线程截屏

    我有一个线程用于侦听 WPF 应用程序的命令 如果 WPF 应用程序收到截取屏幕截图的命令 则任务将移交给 screenshotService 我在互联网上的某个地方找到了一些代码来截取屏幕截图 似乎可以工作 但我还没有想清楚 我无法从另一

随机推荐

  • CodeIgniter 的 CAS 身份验证库

    我正在尝试在 CodeIgniter 应用程序中实现 CAS 身份验证 但我找不到当前是否有为其设置的库 我通过只包含类并添加一些肮脏的修复来进行管理 但如果有人知道合适的库 我认为这将是一个更干净的解决方案 我一直在浏览这里以及谷歌上的一
  • PHP:帮助处理此日期格式

    我正在使用 CodeIgniter 构建一个应用程序 我的 SQL Server 数据库中有包含日期 时间字段的记录 我正在从 m d Y 文本字段中输入的日期查询这些记录 这对应于数据库中的日期格式 不幸的是我在英国 所以我想输入日期 例
  • 如何在创建新计时器之前检查计时器是否处于活动状态

    我在另一个线程上遇到了这个计时器代码 当您按下RaisedButton同时进行多次 每次点击都会增加 1 秒 从而增加减少的速度 有关检查计时器是否已处于活动状态以及是否不让计时器处于活动状态的最简单方法的任何想法RaisedButton创
  • 如何从私有 Docker 注册表中删除镜像?

    我运行一个私人 docker 注册表 我想删除除latest来自存储库 我不想删除整个存储库 只想删除其中的一些图像 这API docs没有提到做到这一点的方法 但肯定有可能吗 目前您无法使用注册表 API 来执行该任务 它只允许您删除存储
  • wamp上安装magento的问题

    大家好 谁能帮我解决安装 magento 时遇到的问题 我的问题是我已经在 wamp 上下载了 magento 在安装过程中我收到了错误 它给出的消息是致命错误 超过了 60 秒的最大执行时间 c wamp www magento lib
  • signalr 我如何从服务器向呼叫者发布消息

    我正在使用 Signalr 1 1 4 因为我仍在使用 net4 所以无法升级到 signalr 2 基本上我想从服务器向调用者发布消息 以避免消息发送到任何未启动进程的客户端 我的集线器类看起来像这样 public class Updat
  • VBScript 中的文件名字符串空格问题

    当我运行此命令时出现错误 但我不确定原因 运行 VBScript 来执行 bat 文件 我想将任何错误消息输出到日志文件 为此 我有以下代码 Set WshShell CreateObject WScript Shell WshShell
  • 如何过滤 Quickblox 用户?

    我想根据应用程序用户的电话号码或电子邮件过滤他们 但我不希望完全匹配 而是用户应返回的部分电子邮件或部分号码作为响应 Quickblox iOS SDK 有办法吗 假设我有一些 Quickblox 用户 如下所示 ID NAME Email
  • Swift 类中的静态与类函数/变量?

    以下代码在 Swift 1 2 中编译 class myClass static func myMethod1 class func myMethod2 static var myVar1 func doSomething myClass
  • 素数生成器逻辑

    我应该去上课PrimeNumberGenerator其中有一个方法nextPrime这将打印出用户输入的数字之前的所有质数 Ex Enter a Number 20 2 3 5 7 11 13 17 19 我们的老师告诉我们应该使用嵌套fo
  • VBScript“类型不匹配”问题与“[in, out] BSTR *”参数

    我正在使用第三方 COM 对象 该对象的一些方法将值作为 BSTR 指针传回 由于 VBscript 仅支持 Variant 类型 尝试以类似 Object Method sMyString 的方式使用会合理地以 类型不匹配 错误结束 我怀
  • 如何使用切换添加和删除必需的属性

    我的用户可以访问表单 为了简化任务 我放置了一个可选择的列表 但如果答案不在列表中 他们可以手动添加原因 默认情况下需要选择列表 但如果用户访问文本字段 则该文本字段将成为必需的 并且不再需要该列表 反之亦然 HTML div class
  • Spark / Scala:使用最后一次观察进行前向填充

    使用 Spark 1 4 0 Scala 2 10 我一直在试图找出一种方法来用最后一个已知的观察结果转发填充空值 但我没有看到一个简单的方法 我认为这是一件很常见的事情 但找不到显示如何执行此操作的示例 我看到用值向前填充 NaN 的函数
  • 上一个片段在新片段下方可见

    我有一个带有 ViewPager 的 TabLayout ViewPager 有四个片段 F1 F2 F3 和 F4 F1 包含一个 FrameLayout 它可以有 2 个片段 F11 和 F12 最初 我使用以下代码在 FrameLay
  • ANTLR解析MismatchedTokenException

    我正在尝试为我正在编写的更简单的语言编写一个简单的解析器 它由后缀表达式组成 到目前为止 我的解析器遇到了问题 当我在输入上运行它时2 2 test gt gt 我收到 MismatchedTokenException 另外 我将如何实现递
  • foreach 不适用于 getElementsByTagName 创建的数组

    当我通过使用 document getElementsByTagName 收集网页中的按钮来创建数组时 我无法使用 forEach 对于前 var deleteButtons document getElementsByTagName bu
  • payU 支付网关 Android 集成中缺少哈希参数

    我需要在我的 Android 应用程序中集成 payU 支付网关 但是当应用程序尝试获取哈希密钥时 它给我错误消息 哈希参数丢失 在演示应用程序中 有两个选项可以生成哈希值 if null salt generateHashFromServ
  • 在 for 循环中使用 ggarrange 排列多个绘图

    我想使用以下代码在一张图像中排列多个绘图 mydataframe lt data frame number1 sample 1 140 size 200 replace TRUE number2 sample 1 4000 size 200
  • 将输入流转换为对象列表

    我必须制作一个 jar 来访问 API 来获取人员详细信息列表 该列表基本上有四个字段 id 姓名 薪水 部门 我正在使用 apache httpclient 执行 get 请求 该请求在点击 API 时为我提供了一个 httpentity
  • 对组合框中的项目进行分组

    我有一个 ListView 其中包含两种类型的对象 单个对象和多个对象 单个是普通的 TextBlock 而多个是包含项目的 ComboBox 我试图对组合框中的项目进行分组 但没有成功 是否可以 或者我应该采取不同的方法 我想要实现的目标