问题标签 [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.

0 投票
0 回答
169 浏览

datagrid - 如何加倍编辑 DataGridCell(或如何在编辑后编辑 DataGridCell)

实际情况我有Datagrid一些情况,TemplateColumns如果有人要编辑一个DataGridCell窗口,用户可以在其中进行更改,按下保存按钮后,我的窗口被释放,只有DataGridCell被选中,但如果他现在想要重新编辑,DataGridCell他必须先改变选择到另一个 DataGridCell

这是我的DataGrid.BeginningEdit

我想也许我DataGridCell已经处于编辑模式但是因为我已经使用CancelEdit()结束所有编辑操作我错过了什么?

0 投票
2 回答
1538 浏览

c# - how to determine which cells in a datagridview are checked?

My datagridview has 2 columns. Column 0 has contains checkboxes in the off position (default). The user can click the box and change the state or Checked.

How can I loop thru and find the ones that are checked. Here is my code

0 投票
1 回答
897 浏览

wpf - WPF:如何为动态生成的 DataGrid 对象创建可视化树?

如果我在代码后面创建了一个DataGrid添加了一些任意列的代码,我将无法为DataGrid. 我需要CellStyle动态编辑特定行的属性,因此我希望能够在运行时VisualTreeHelper对我的DataGrid对象使用该函数。如何为DataGrid动态创建的对象构建可视化树?如果我在设计时使用 XAML 构建树,则树的构建没有问题,但我不确定如何针对动态案例执行此操作。

我的问题的一个简单示例是这样的:

后面的代码为:

但是 WPF Tree Visualizer 只是将我创建的 DataGrid 显示为没有父级或子级,因此 VisualTreeHelper 函数不起作用。

0 投票
3 回答
1852 浏览

c# - 更改与其内容相关的 DataGridCell 的背景

我知道我的问题已经在这里以多种方式陈述和回答。但我就是无法让它按照我想要的方式运行。正如标题所述,我尝试根据其内容更改我的 datagridcell 的背景颜色。我对 WPF 比较陌生,但我想解决方案是结合了绑定的转换器。目标是根据称为“状态”的属性更改单元格的背景颜色,该属性是具有四种状态的枚举。

我已经写了一个转换器:

到目前为止,一切都很好。xaml 部分看起来像这样(经过一些谷歌搜索......)

我还没有真正了解 DataGridTemplateColums 和 DataTemplates 是什么。但是我用 CellStyle 和另一种我不记得的方式尝试了同样的方法。转换器有一个断点,并在我尝试的所有解决方案中被调用。但不知何故,“背景”属性似乎忽略了转换器的返回值。所以我猜我的错(或我缺乏理解)有另一个来源。

有人愿意指出我正确的方向吗?

0 投票
1 回答
520 浏览

wpf - WPF 中的 DataGridCell 编辑模式问题

这是问题所在:

当我们要编辑 aDataGridCell时,我们必须首先选择a DataGridRow。我的意思是在DataGridCell外部编辑DataGridRow.Current,我们需要 1.Click单元格选择行,2.DoubleClick单元格进入编辑模式。我的问题是我们如何只需单击一下就可以进入编辑模式?可能吗?

0 投票
0 回答
552 浏览

wpf - 提交数据后的 WPF Datagrid 单元格焦点问题

我有具有 SelectionUnit = FullRow 的数据网格。当我在单元格上单击时,如果我按 Escape 键,它将进入编辑模式并且没有更新。它从编辑模式出来,但仍然有焦点(虚线)

但是如果我更新数据然后按 Escape 键,它基本上使用(CellEditEnding 事件)提交数据,然后当我尝试从代码中将焦点设置到该单元格时,它不起作用,整个数据网格失去焦点。

请参阅下面的代码。

//更新数据后按Escape时提交编辑代码

在此处输入图像描述

请帮助谢谢

0 投票
1 回答
490 浏览

c# - 将单元格的内容传递到 XAML 中的转换器

我正在尝试创建一种根据单元格内容类型对齐单元格的样式。如果是文本,则左对齐,如果是数字,则右对齐。我试图创建一个转换器,它根据给定的值返回对齐方式。这是代码:

问题是转换器发送的是行对象,而不是单元格。如中,包含行变量的整个对象被发送进来,因此没有关于哪个特定单元格正在对齐的可用信息。我需要一些方法来专门发送单元格的值。

更新:

我已经成功地发送了单元格本身,这是朝着正确方向迈出的一步。

但是问题已经变成了细胞内部没有信息。它的内容在发送到转换器时为空。我不认为有办法在填充信息后将其发送到转换器?

0 投票
1 回答
272 浏览

c# - 获取标记单元格的 DataGridCell 行和列并在其上构建一个按钮

我在 MVVM 中有一个程序。在这个程序中,我有一个带有 DataGrid 的视图。在这个数据网格中,我必须显示如下内容:

在此处输入图像描述

用户标记一些单元格,在 MouseUp 之后,应该在这个选定的单元格上创建一个按钮。这里的第一个问题是,如何获得 Column 和 Row。它位于 SelectedCellsChanged-Event 参数中。在 WPF MVVM Light 的帮助下,我可以为我的 ViewModel 提供 Event 和 Arg,但是我的同事已经在 ViewModel 中的视觉元素方面遇到了问题(他在视觉树中遇到了错误)。而且我知道视觉元素不应该在虚拟机中。这里的任何人都可以给我一个方法来获得这个 Column and Row-Spawn 吗?

我的第二个问题是我无法想象如何在正确的单元格中创建按钮。如果我认为正确,是否可以为每个按钮(带有属性 StartRowSpawn、EndRowSpawn、StartColumnSpawn、EndColumnSpawn)或每个单元格构建一个新的 VM?

你能给我提示,如何解决这个问题?

我也想过网格。在 MouseDown 和 MouseUp 时获取位置,然后为此找到 Grid.Column 和 Grid.Row。

编辑

好的,我用接口解决了我的第一个问题,但我已经遇到了第二个问题。有人可以帮我吗?

0 投票
1 回答
620 浏览

wpf - 触发器未能触发两次和 DataGridCell

我对这一切都很陌生(这是我的第一篇文章),所以请多多包涵。任何改进都更受欢迎。

我正在使用 .Net 4.0,Visual Studio 2010 编写约会计划程序。XAML 由一个 DataGrid 组成,其中的行相隔 15 分钟,四列,最左边的列用于时间。支持数据由 AppointmentRows 和 ObservableCollection 组成。每行本身都包含一个 ObservalbeCollection 的约会。我使用 DragAndDrop 作为我的输入法。

DragAndDrop 似乎在单元格级别上正常工作。项目可以放在数据网格上,从数据网格中删除并在数据网格内重新排列。当约会放在数据网格上时,第一个 DataTrigger 将 HasAppointment 的自定义附加属性设置为 true,第二个触发器通过将 DataGridCell 背景颜色设置为四种颜色之一来响应此附加属性,具体取决于单元格现在是否为空,包含对新人、旧人或需要特殊管理的人的任命。

问题#1:
加载 DataGrid 后,如果该单元格先前已被使用,负责为单元格背景着色的触发器不会触发 - 即使负责设置 HasAppointment 附加属性的 DataTrigger 会触发。也就是说,在加载过程中以及任何时候 UNUSED 单元格上放置了约会,所有触发器都可以正常工作。但是,一旦触发器在单元格上触发(如首次加载或在其上放置新约会时),负责背景着色的触发器永远不会触发,尽管第一个触发器正确设置了 HasAppointment 附加属性并且单元格返回到它包含的第一个约会的第一个背景颜色。要清楚:

  1. DataGrid 已加载。单元格的默认颜色为绿色背景并且为空。
  2. 用户在单元格上放置一个新约会。所有触发器都会触发,单元格颜色为黄色。
  3. 然后,用户将该单元格的内容拖到网格上的另一个位置。约会 WAS 正确报告为空的单元格,HasAppointment 为 false,并且颜色返回默认的绿色背景。
  4. 用户现在在该单元格上删除另一个约会。负责设置 HasAppointment 附加属性的 DataTrigger 会正确触发并将单元格 HasAppointment 设置为 true。
  5. 着色触发器不会触发,并且单元格返回到它包含的第一个约会的黄色背景。

问题#2:
在单元格上放置约会后,用于设置 HasAppointment 关联属性的 DataTrigger 在允许负责着色的触发器运行之前运行两次。它运行正确,但为什么两次?

问题 3:
每个单元格可能有也可能没有预约。每个有约会的单元格可能是三种颜色中的一种。那么,在不为每个值重复代码的情况下,将多个不同值从转换器返回到 DataTrigger 的最佳方法是什么?在这个moemt,我正在使用一个触发器,它在工作时效果很好。

问题#4:
DataTrigger 可以对附加属性进行操作,如果可以,绑定是如何设置的?

感谢您对这些问题的任何帮助。

这是 XAML:

下面是代码隐藏:

0 投票
0 回答
141 浏览

wpf - 如何在 datagridcell 中的附加属性上触发两次触发器?

好的,从我以前的帖子中得到提示,简而言之,我如何让触发器在附加属性上触发?

经过更多的尝试(和很多错误),我想我知道问题出在哪里,但不知道如何解决它。当使用拖放到数据网格上时,负责更改 DataGridCell 背景的触发器仅在第一次放置或加载到未使用的单元格时触发。除了从单元格中删除数据(在这种情况下,单元格将返回到行的颜色)之外,对单元格的任何进一步使用都会将其背景返回为其具有的第一个单元格特定颜色,并且触发器不再触发。