在 WPF 网格/列表中跨多列的最佳方法?

2023-12-21

我有一个在 WPF 中编写的自定义用户控件来显示一些数据。我想在列表中显示此用户控件,但我还想提供多个列标题(与用户控件上的某些属性匹配),以便用户可以对用户控件中包含的属性进行排序。

我不确定解决这个问题的最佳方法。

我目前有一个显示这些用户控件的列表框,但列表框没有标题,我不知道如何在列表框中放置多个标题。

理想情况下我想要这样的东西:

Header1   Header2  Header3   Header4
[UserControlThatSpansAllFourColumns]

我的另一个想法是使用 DataGrid 并以某种方式让每个项目跨越多个列,但到目前为止我也无法弄清楚。

如果有人有任何提示,我会欢迎他们!


好吧,这在任何情况下都不是“最好的方法”,但我只是把它扔进去。一种像您需要的那样工作的方法是将 ListView 与自定义 ItemContainerStyle 一起使用,该自定义 ItemContainerStyle 使用<ContentPresenter>而不是默认的<GridViewRowPresenter>。这个简短的 XAML 在某种程度上证明了这一点:

<ListView>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListViewItem">
                        <ContentPresenter/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Header1"/>
            <GridViewColumn Header="Header2"/>
        </GridView>
    </ListView.View>

    <Button>Item1</Button>
    <Button>Item2</Button>

</ListView>

在这里,您可以获得列标题,并且项目跨越整个列表视图。然而,在这个解决方案中,项目的渲染有点像在它自己的世界中。它并没有真正连接到为 ListView 定义的列。所以我想让这项工作变得更好的一种方法是提供你自己的<RowPresenter>实际上考虑了父列表视图中定义的 GridViewColumns 的实现。

不管怎样,希望这能有所帮助。

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

在 WPF 网格/列表中跨多列的最佳方法? 的相关文章

  • WPF C# 输入框

    我正在使用 C 构建 WPF 应用程序 我想弹出一个对话框提示用户输入他 她的名字 之后 我将跟踪该名称并将一些数据保存到 txt使用该名称的文件 例如 输入的名称是姓名 约翰 所以我有数据数据 1 2 3 然后我将 数据 保存在John
  • 是否可以仅突出显示图像的某些部分(不透明度)?

    我已对图像应用了不透明度 这是代码
  • MVVM 焦点到文本框

    我如何将焦点集中在TextBox没有指定名称TextBox 目前我正在做以下事情
  • 在c# wpf中从Memorystream获取Imagesource

    我怎样才能得到ImageSource from MemoryStream在 WPF 中使用 C 或转换MemoryStream to ImageSource将其显示为 wpf 中的图像 using MemoryStream memorySt
  • 如何将 WPF 3.0 下构建的应用程序转换为 4.5 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 WPF 3 0 中构建了一个应
  • 带有移动向前/向后按钮的自定义列表框

    我有一个带有左 右重复按钮的自定义列表框 可以使用内容模板滚动其内容 如下所示
  • 为什么在 Windows 中缩放 WPF 应用程序时会看到像素?

    我使用 WPF 为随机应用程序开发了一个 GUI 我在应用程序窗口上放置了一堆开箱即用的 WPF 控件 我没有定制任何东西 没有使用位图等 在 Windows 7 中运行我的应用程序并使用放大镜应用程序进行缩放时 Win key Plus
  • 从字节数组创建 BitmapImage

    我正在创建一个包含任意值的字节数组 并希望将其转换为 BitmapImage bi new BitmapImage using MemoryStream stream new MemoryStream data try bi BeginIn
  • 密码盒和 MVVM

    我们有以下场景 MVVM 用户界面 用户可以在其中输入密码 实际上是一个PasswordBox 应该做一些工作的服务器 服务器连接到一些需要身份验证的数据库 我已经读过这个关于MVVM中PasswordBox的问题 https stacko
  • 如何使用故事板更改wpf中网格行的高度

    我有一个Grid有 2 行
  • RichTextbox SelectionStart 返回错误的索引

    我需要向用户显示光标上文本的选择开始和长度 就像在 notepad exe 中一样 选择长度没有问题 因为 Richtextbox 支持带有开始和结束的选择属性 http msdn microsoft com en us library s
  • WPF 对 DataGrid 内的 TextBlock 进行全局样式设置

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

    我已经发布给微软的评论 http connect microsoft com VisualStudio feedback ViewFeedback aspx FeedbackID 420920WPF 中的对话框未启用 VisualStyle
  • WPF 从主线程以外的其他线程截屏

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

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 为什么我的 WPF 复选框绑定不起作用?

    我正在使用 MVVM VS 2008 和 NET 3 5 SP1 我有一个项目列表 每个项目都公开一个 IsSelected 属性 我添加了一个复选框来管理列表中所有项目的选择 取消选择 更新每个项目的 IsSelected 属性 一切正常
  • 为什么绑定到 IEnumerable 的 ListBox 不更新?

    我有以下 XAML
  • 从代码中,如何创建对存储在附加属性中的对象的属性的绑定?

    我们有一个继承的附加属性来存储一个对象 在可视化树的更下方 我们希望从代码绑定到该对象的属性 通常我们像这样构建绑定的路径部分 var someBinding new Binding Path new PropertyPath Attach
  • WindowsFormsHost ZOrder

    看起来 WindowsFormsHost 控件被设置为显示在顶部 有没有办法更改其 z 顺序 以允许同一窗口上的其他 WPF 控件在 WindowsFormsHost 控件之上可见 不幸的是 不能 由于 winformshost 合成到 W
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变

随机推荐

  • Unix 上的文件修改时间(秒)

    在Unix上 有没有命令可以显示文件的修改时间 精确到秒 在 Linux 上 这可以通过 stat c y 轻松完成 它返回类似的内容2009 11 27 11 36 06 000000000 0100 我在 Unix 上没有找到类似的东西
  • 为什么 Perl 在释放大数组时不进行垃圾回收内存?

    我知道 Perl 使用基于引用计数的垃圾收集 当变量超出范围时 引用计数会递减 如果 REFcount 变为 0 则会取消分配内存 但是 当我跟踪如下所示的一个小示例时 我无法发现取消分配的情况 print start sub func m
  • startIntentSenderForResult 已弃用 Android

    代码片段 private fun requestHint val hintRequest HintRequest Builder setPhoneNumberIdentifierSupported true build val creden
  • 从 Google 服务帐户模拟 Azure 服务主体

    我想使用 Google 服务帐户 JWT 令牌获取 Azure 服务主体 SP 的临时凭据 这是从 GKE 工作负载调用 Azure API 所必需的 而无需在 GKE 中存储长期 SP 凭据 这种联合对于 GCP gt Azure 是否可
  • 调用 CLR 存储过程

    简而言之 在哪里可以找到 C VB 客户端示例代码 该代码使用一些 argumnet 如 sqlxml 数据 调用 CLR 存储过程并接收数据读取器或其他形式的结果 另外 如何定期接收通过 SQlContext Pipe Send 方法发送
  • 为什么 Seq.newBuilder 返回 ListBuffer?

    看着 val sb Seq newBuilder Int println sb getClass getName sb 1 sb 2 val s sb result println s getClass getName 输出是 scala
  • 分布式分析系统数据一致性的架构设计

    我正在重构一个将进行大量计算的分析系统 并且我需要一些关于可能的架构设计的想法来解决我面临的数据一致性问题 当前架构 我有一个基于队列的系统 其中不同的请求应用程序创建最终由工作人员使用的消息 Each 请求应用程序 将大型计算分解为较小的
  • Parse.com 失败:ReferenceError

    我正在尝试在 Cloud Code 中运行以下解析后台作业 Parse Cloud job sendAlert function sendAlert Parse Push send data content available 1 succ
  • C 中的 FILE 指针如何工作?

    如果我们写 in main FILE p fopen filename anymode 我的问题是 什么是p指点 文件指针p指向由 C 库处理的结构 该结构在给定的打开模式下管理指定文件的 I O 功能 你无法先验地判断它指向的是静态分配的
  • 从 Twig 模板名称解析本地文件路径

    转换该字符串的编程步骤是什么 AcmeProjectBundle home html twig 进入这个 path Symfony src Acme ProjectBundle Resources views home html twig
  • Google 地图地理编码不返回国家/地区

    我需要一个可靠的方法来获取city state and country place id从纬度和经度 我正在尝试使用 Google 地图地理编码 但问题是某些坐标不会返回administrative level 1 州 或国家 地区 以这个
  • sendRedirect 还是 request Dispatch 效率更高?

    SendRedirect 或 requestdispatch 哪个应该更优选 哪个更有效 它们做两件截然不同的事情 所以你不能只根据效率来决定 发送重定向会将浏览器发送到不同的 URL 该 URL 对浏览器可见 你可能想要也可能不想要 例如
  • CSS 样式冲突预防和命名空间技术

    假设您正在构建一个名为 Awesome Widget 的概念性小部件 并且您希望完全保护它不与周围元素或作为小部件内的内容驻留的子元素发生冲突 我们不想要什么 div ul li 解决方案 1 CSS 子组合器 使用 CSS 子级组合器选择
  • ggplot2:将 geom_bar 基线设置为 1 而不是零

    我正在尝试制作比率的条形图 使用 geom bar 并希望将 x 轴设置为 y 1 因此 比率 1 将位于轴上方 我可以用 geom point 做类似的事情 ggplot data aes x ratio y reorder place
  • 在 R闪亮应用程序中通过闪亮表输入数据

    我想构建一个闪亮的应用程序 它获取矩阵数据作为输入 并根据对其进行一些操作返回一个表作为输出 通过搜索 我发现 ShinyTable 包可能很有用 我尝试了下面闪亮的代码 但结果应用程序显示为灰色并且没有结果 library shinyTa
  • 缺少显示/添加数据源

    任何帮助将不胜感激 我正在使用 Visual studio 2010 目前我正在 ASP net mvc3 中制作一个项目 在这个项目中 我有 edmx 数据集 并希望使用它来制作 rdlc 报告 所以最终我无法在报表设计的数据菜单中获取显
  • Laravel 9 错误路线 |不支持GET方法

    我在通过 API 获取某些客户 经过身份验证的用户 的列表时遇到问题 当我在 Postman 中使用此路线时 收到以下错误 Symfony Component HttpKernel Exception MethodNotAllowedHtt
  • spyder IDE 的 ipython 启动配置

    尝试向我的 IPython 配置文件添加一些导入 以便当我在 Spyder IDE 中打开内核时 它们始终会加载 Spyder 有一个 Qt 界面 我认为 所以我 a 使用以下命令检查以确保我位于配置文件的正确目录中ipython loca
  • gcc 交叉编译链接器错误:无法读取符号:无法识别文件格式collect2

    我正在尝试使用 gcc eabi 交叉编译包应用程序 我已经修改了配置文件以指向所有目标目录 但链接器在链接某些共享库时仍然报错 确切的错误如下 Linking CXX shared library home aeodrs JAUS 2 1
  • 在 WPF 网格/列表中跨多列的最佳方法?

    我有一个在 WPF 中编写的自定义用户控件来显示一些数据 我想在列表中显示此用户控件 但我还想提供多个列标题 与用户控件上的某些属性匹配 以便用户可以对用户控件中包含的属性进行排序 我不确定解决这个问题的最佳方法 我目前有一个显示这些用户控