问题标签 [datagridcell]
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.
c# - 有没有办法直接访问和操作指定 DataGrid 中的 DataGridCell?C# Visual Studio 2015 社区
有没有办法直接访问和操作指定 DataGrid 中的 DataGridCell?C# Visual Studio 2015 社区
我想访问特定的 DataGridCells,最好使用行和列,验证内容并更改一些属性。一旦我可以到达牢房,我就可以完成所有的工作。我一直在使用 VisualTreeHelper,几乎可以到达那里。我写“几乎”是因为由于某种原因,如果我在两个步骤之间插入 MessageBox.Show() 一切正常,除了我有一个我不想要的消息框。具体来说,我正在用一组数据填充数据网格,并希望更改每个单元格的背景和前景,这些单元格的数据与另一组匹配。
我在使用消息框、控制台写入以及本地和监视变量之间进行调试。我发现没有消息框,我的 DataGridRowPresenter 显示 0 个孩子并且我的条件失败。如果我删除条件,它会抛出一个索引越界异常。如果我有消息框,它会在消息框之前显示 0 个子节点,在消息框之后显示 2 个子节点(这对我的测试数据来说是正确的),并且该方法的其余部分继续执行并完全按照我的意愿执行。
我可以做些什么(除了消息框)来允许正确遍历树吗?或者,最好有一种更简单的方法可以直接进入我想要操作的单元格?如果我可以选择 DataGridViewer 而不是 DataGrid,这似乎很简单。
谢谢你,埃里克
PS 在 StackOverflow 上回答了几个非常相似的问题,但每个问题似乎都在解决不同 的问题如何在代码中访问 DataGridCell 的数据对象?- 正在寻找删除后的信息,我正在寻找基于行和列的单元格,而不是任何类型的事件 访问 WPF 中 DataGrid 的单元格值?- 是单元格值的一个很好的循环,但我似乎没有看到如何使用该过程来更改单元格属性(例如,如果单元格内容是“史密斯”,则将字体更改为粗体)
这就是我所做的...
我也试过这个来获取行,但我得到了一个空结果
c# - DataGridCell 向下时为 TextBlock,向上时为 TextBox
所以,我有一个 DataGrid,其中包含如下所示的元素:
PreviewKeyDown 工作得很好,当我上去时,我可以毫无问题地回到单元格。我看到它的方式,出于所有意图和目的,我在那里有一个 TextBox。
现在,当我尝试在某个事件中从单元格中下来时:
(注意:我手动放置了两次 VisualTreeHelper 方法,我确实有 FindVisualChildren 方法,但我手动浏览了树,并且为了加快速度,我手动放置了它)
如果我尝试将 tb 声明为 cp.Content 作为 TextBox,我会得到一个空值。出于某种原因,ContentPresenter 位于 TextBlock 内部,而不是 TextBox。FindVisualChildren(cell) 返回一个空的 IEnumerable。
为什么这是个问题?因为我需要能够在文本上调用 SelectAll(),而 textBlock 不提供该选项。任何帮助是极大的赞赏。提前致谢!
稍后编辑:显然,当不处于编辑模式时,数据网格包含一个文本块。在编辑模式下,一个文本框。现在,datagrid.BeginEdit() 似乎不起作用,因为它没有初始化 TextBox,也没有触发 PrepareCellForEditing 事件。
c# - 使用 OnCellPainting e.PaintBackground 绘制 DataGridViewCells 背景的一部分
我正在重写 OnCellPainting 方法,因此我可以为 DataGridView 中的某些 DataGridViewCells 绘制自定义边框
最初我的边框被绘制,然后在调用该方法时被绘制e.PaintBackground(e.ClipBounds, true)
。
我已经更新了我的代码,以便它首先绘制背景,然后在顶部绘制我的寄宿生。这种方法效果很好,但理想情况下我希望能够在我绘制的边界内绘制背景颜色(使用e.Graphics.DrawLines(....)
)
为了测试这个概念,我尝试了以下方法:
然而,在我的方法结束时,它不仅绘制了我的矩形指定的部分,还绘制了整个单元格,我是否从根本上遗漏了什么?
vb.net - DataGridView,将类型化列的单元格更改为另一种类型
我正在尝试将 datagridview 上的列与 2 种控件类型(复选框和文本框)混合,数据来自我也在编写的存储过程,因此我有一点灵活性。
在存储过程中,我返回一个空白列作为Selection
GridView 中的列,但是在尝试根据条件将单元格转换为其他类型时遇到问题......
我一直认为问题是在控件类型之间进行转换时的数据类型,我尝试了各种不同的方法来先转换值,先转换控件等,但没有任何方法可以 100% 工作.....
目前,我让 SPFalse
在列中返回字符串,然后将其与标准一起使用来创建复选框.....它工作正常,但即使将值转换为 a 后,值仍然是字符串Boolean
,数据类型也是Boolean
on复选框,但值是String
.....这已经超出了我的想象,我不知所措......
这是将文本框列单元格转换为复选框单元格的代码
任何想法为什么复选框的值仍然是一个字符串('False')......
它现在正在做的问题是当我处理单元格单击事件时,我无法使用该Not Value
技术选中或取消选中该框
- - 编辑 - -
这是我正在使用的子程序,它创建了几种不同类型的控件。
这将创建我想要的复选框,但值仍然作为导致单元格的字符串。单击事件失败,因为我试图将复选框值设置为 true 并且该.value = not .value
部分失败,因为由于某种原因该值仍然是字符串,但复选框值类型实际上是布尔值.....
c# - 空值的datagridcell自定义模板?
我正在尝试填充数据网格,并且希望空单元格具有特定的模板。
在搜索中,我遇到了一些不同的类似示例,例如Cellvalue 的 Color DataGridCell。此示例使用转换器为单元格设置背景颜色,但从我所阅读的内容来看,我不相信转换器可以用于设置模板。
关于我如何正确地这样做的任何建议?具体来说,我希望在单元格内容为空时显示文本 NULL(但不是空字符串)。据我所知,模板将是这样做的正确方法。
c# - 如何在 DataGridView 单元格中制作格式掩码?
我需要在一个单元格中创建一个格式/掩码,以防止用户输入不相关的数据。
列单元格包含日期值,例如"MM/YYYY"
没有日期值。
我尝试了以下方法来做出这个定义,但没有成功:
另外,我尝试从那里转到属性DataGridView
并进行定义Format
。
c# - 将 datagrid 列中的多个单元格值绑定到单个文本框
在我的 wpf 项目中,我有一个由数据集填充的数据网格,其中包含一些列和许多行。我想遍历 Column[1] Rows[i] (例如,获取 datagrid 中所有行的 column[1] 单元格内的值)。我的问题是如何将这些单元格值绑定到单个文本框?我知道使用多重绑定将是实现解决方案的方法之一,但我没有找到任何关于通过数据网格多重绑定文本框的帮助。例如,我已阅读以下问题:
如何在 DataGridTextColumn 上使用 MultiBinding?
此外,绑定单个值是可以实现的,我已经做到了。我将不胜感激任何帮助。提前致谢 !!
我的 XAML:
wpf - 如何将宽度图像与 datagridcell 宽度相匹配
这是我的问题:选择行的唯一方法是单击图像(绿色圆圈)。
我想做的事情:当我单击时DataGridCell
,不仅选择了图像,还选择了整行。
我必须DataGridTemplateColumn
在DataGrid
.
我设置SelectionMode="Single" SelectionUnit="FullRow"
为 DataGrid 属性。
但是,如果我没有在图像上完全单击,则不会选择该行。
截图
我做了一些截图来更清楚地解释它:
所以,在我看来,问题可能来自两件事:
- 尺寸图像不适合整个图像
cell
,所以这就是为什么,但我怎样才能适应它? - 选择
Cell
被禁用,我可以启用它
谢谢你的时间 !
编辑 1