问题标签 [datagridcolumnheader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
123 浏览

c# - 在 Visual Studio 2017 中增加 WPF dataGrid 的 DataGridColumnHeader 的 FontSize 和 FontWeight

在 Visual Studio 2017 中开发时,我的 DataGridColumnHeader 的 FontWeight 很好,但是一旦我启动项目,DataGridColumnHeader 的文本就会变淡。这与 DataGridComboBoxColumn 相同。TextColumns 工作正常。我在网上发现解决这个问题的最佳方法是使用 TextBlock 代替 DataGridColumnHeaderPresenter 的 DataGrid 样式,但我找不到任何关于如何实现这一点的帮助。

此外,无论我为 DataGridColumnHeader 和 DataGridComboBoxColumn 增加多少字体大小,它似乎都没有改变。我知道一些开发人员会建议我应该将以下片段添加到我的 DataGrid。

我已经尝试添加它,但它不起作用。我已经编辑了 DataGrid、DataGridColumnHeader 等的模板,但没有运气。

0 投票
1 回答
143 浏览

c# - DataGrid 列不使用 DataGrid2D 刷新值

我正在尝试将列和行绑定到同一个源,但是当我在失去焦点后更改值时,DataGridDataGrid 没有显示新值。Headers 集合包含预期的新值。ColumnHeaderRowHeaderTextBox

数据上下文:

我做错了什么?

我正在从 View 端更改 Value 属性,因此它不需要 INotifyPropertyChanged 接口。如果我在 DataGrid 上调用“刷新”,它会更新但会闪烁。

编辑:

你为什么要对我投反对票?这是一个坏问题吗?

0 投票
3 回答
1682 浏览

c# - WPF C#,具有多级标题的数据网格

再会。

请我需要创建一个看起来像这个屏幕截图的数据网格

在此处输入图像描述

我找到了一些代码,它们为如何做类似的事情提供了指导,但我在实现中有点迷失了。

这是我正在尝试编辑的代码

我将代码编辑为此

这是结果

在此处输入图像描述

我不知道如何添加下一个顶部列(制造商及其子列)“资产”的子列看起来像一个 gig-zaw,我不知道如何将它们弄平。我试图将相同的高度添加到所有列标题无济于事。

此外,我还发现很难修改单元格模板并将其绑定到我的视图模型中的特定属性。这是因为某些单元格将同时包含一个文本框和一个按钮。

任何人都可以很好地指导我如何

  1. 平衡子列标题的高度
  2. 添加第 2 列
  3. 覆盖单个列的单元格模板以包含按钮和文本块?enter code here
0 投票
1 回答
240 浏览

wpf - WPF Datagrid:如何通过鼠标单击列标题来清除列排序?

关于如何以编程方式执行此操作有很多答案,但没有关于通过用户界面的答案。

0 投票
0 回答
133 浏览

c# - 如何将 dataTrigger 绑定到 DataGridColumnHeader 模板

我正在处理具有自定义排序实现的 DataGrid,并且 colomnHeader 应该显示排序方向和排序顺序。

我正在使用 MVVM 模式。

在我的 viewModel 中,我有一个分拣机的 ObservableCollection。每个排序器都有一个标签,它对应于列的 SortMemberPath。

我的目标是使用正确的标签将 columnHeader 绑定到相应的排序器,以获得 SortDirection(columnHeader 也有),还有 SortOrder,它允许我在标题中显示排序器的索引。之后,我想为过滤器添加一个类似的功能(使用另一个 ObservableCollection 过滤器)

为此,我使用了在标题中设置的自定义 Thumb,并带有以下 DependencyProperty :

  • 列表排序方向?自定义排序方向
  • 整数排序顺序
  • 布尔 IsFiltered

但是通过使用这种方式,我需要在修改排序列表时更新拇指。

我会通过给它排序器集合和转换器参数中的 SortMemberPath 来制作一个带有转换器的 DataTrigger。

有可能吗?我怎样才能实现这个功能?

谢谢您的帮助 !

0 投票
1 回答
33 浏览

wpf - 使用 StackPanel 在用户定义的标题上修复 DataGrid 标题排序

我有一个从 ObservableCollection 填充的 DataGrid。

一些 ColumnHeaderStyle 项目是“正常的”(1行文本):

但对于某些人来说,我使用 StackPanel,所以我可以有多行,使用 TextBox 项目,改变它们之间的字体大小:

我遇到的问题是对每一列进行排序。在“正常”情况下,我可以单击列标题上的任意位置对其进行排序。但是,在 StackPanel 的情况下,顶部只有一个 4 像素高的薄区域(排序箭头的高度),您可以在其中对列进行排序。

有没有办法改变 StackPanel 案例,使其像“正常”案例一样,您可以单击标题中的任意位置对其进行排序?

0 投票
1 回答
533 浏览

wpf - 如何访问 wpf 中数据网格列标题内的文本框?

我是 WPF 的新手。因为我已经在我的数据网格列标题中添加了一个文本框列以实现搜索功能。我无法访问项目中数据网格内的文本框名称。

我的 XAML:

我的C# :

我在后面的代码中编写了 textchange 事件,我想在我的 C# 中访问“NameTextBox”(文本框的名称)。请帮帮我。

0 投票
1 回答
47 浏览

wpf - WPF 样式化 DataGrid 标头

同学们,美好的一天。我以前的开发人员被修改了 default DataGridColumnHeadersPresenter。结果,这种修改后的样式现在适用于解决方案中的所有 DataGrid。

现在我从团队负责人那里得到了在 DataGrid 标题中实现过滤器的任务。我已经创建了自己的风格,DataGridColumnHeader但它不起作用。这里是:

当我在 DataGrid 上的 XAML 中使用这种样式时:

只有标题的高度设置为 50(在样式中定义)。

我哪里错了?如何覆盖默认值DataGridColumnHeadersPresenter?如果我将所有样式设置都放在DataGridColumnHeadersPresenter所有工作正常,但在解决方案中的所有 DataGrids 上。

谢谢!

0 投票
1 回答
53 浏览

wpf - Datagrid ColumnHeader Style 呈现奇怪的双边框

我为 DataGridColumnHeader 创建了一个样式。大部分都在工作,但我通过标题文本获得了第二个边框,我不知道如何解决这个问题。请参阅下图了解我得到的结果:

DataGridColumnHeader 双边框

我只想要文本下方的一个边框。这是我制作的样式:

有人能告诉我我做的风格哪里出了问题吗?

编辑:

我已将所有元素放在边框内,但这似乎并没有解决它。当我给边框设置不同的厚度时,结果如下:

边框粗细不同

顶部和底部边框都出现两次。给标题一个 MinHeight 会删除双边框。这似乎不是一个完美的解决方案,但目前有效。

0 投票
0 回答
43 浏览

wpf - 继承 DatagridColumnHeader 并使用它

我创建了一个继承自 datagridcolumnheader 的类。我设置了它的样式(现在使用原始 datagridcolumnheader 的默认样式)但我不知道如何强制我的列使用这个 customDatagridcolumnHeader。

我试过这个:

它不起作用,我明白为什么。如何做这样的事情?我试图修改默认的 DatagridColumnHeadersPresenter,但它只有两个部分,PART_FillerColumnHeader(我可以替换)和 itemsPresenter。目的是在新类上添加属性、函数和事件(只是试图为过滤器提供文本框,但不是针对所有列,也不是针对所有数据网格)。我“认为”我可以通过直接继承数据网格,然后通过树找到文本框来找到一种方法,但这对于我想做的所有事情都不是很实用(比如隐藏一列的文本框)

编辑:这是未来的模板

如果我修改控件 DataTemplate 而不是模板本身,我将失去列标题的所有好东西(排序、排序字形、拇指改变宽度、重新排序......)好吧,事实上,我不会,但文本框将在标题内,排序字形将在顶部...顺便说一句,它更好,更具可读性