在WPF中如何从DataGridCellInfo类中提取DataGridCell?

21

我想知道如何从DataGridCellInfo中获取DataGridCell。实际上,我的datagrid中有一些选定的单元格,并且SelectedCells属性返回DataGridCellInfo的集合,但我也想在运行时更改这些单元格的背景色。所以我需要datagrid单元格。

请建议我如何做到这一点,以及如何通过代码动态更改datagrid单元格的背景颜色。

谢谢


如果你使用XAML来完成它,会更简单,我建议这样做。 - Natxo
谢谢,但实际上我正在开发一个自定义控件,所以我需要一个更通用的方法来解决这个问题。 - user831174
1
看一下这个问题的答案:https://dev59.com/2ErSa4cB1Zd3GeqPWGda - Natxo
非常感谢,它有效了,但仅适用于部分问题,我仍无法理解动态设置背景颜色的部分。 - user831174
2个回答

55

对于从搜索引擎跳转而来,期望在问题标题中找到答案的任何人,请查看此处:https://dev59.com/anPYa4cB1Zd3GeqPgTpu#17066695

内容:

public DataGridCell GetDataGridCell(DataGridCellInfo cellInfo)
{
    var cellContent = cellInfo.Column.GetCellContent(cellInfo.Item);
    if (cellContent != null)
        return (DataGridCell) cellContent.Parent;

    return null;
}

编辑

如果您点赞这个答案,请不要忘记同时点赞我链接的原回答!


@user3690202 不是很准确。这个问题的问题在于标题中所问的与问题本身所问的不同。标记的答案确实回答了manav inder真正提出的问题。 - Steffen Winkler
1
如果单元格不在视图中,我们需要使用 Datagrid.ScrollIntoView - nan

5

要动态更改单元格的颜色,最简单的方法是:

cell.Background = new SolidColorBrush(Colors.Green);

如果想要获取datagrid单元格,请参考以下链接:

WPF Datagrid: Programmatically editing a cell

感谢Natxo的帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接