更新单个单元格的 UWP DataGrid 样式

Posted

技术标签:

【中文标题】更新单个单元格的 UWP DataGrid 样式【英文标题】:Update a UWP DataGrid style for single cell 【发布时间】:2022-01-15 06:54:14 【问题描述】:

我有一个 UWP DataGrid 并希望在 C# 中为在 CellEditEnded 事件中编辑的选定行和单元格设置单元格样式。到目前为止,我只能为 DataGrid 中的每一行设置列样式。

Style style = new Style();
style.TargetType = typeof(DataGridCell);
style.Setters.Add(new Setter(DataGridCell.BackgroundProperty, new SolidColorBrush(Windows.UI.Colors.Red)));
e.Column.CellStyle = style;

【问题讨论】:

【参考方案1】:

您使用的代码将单元格样式应用于整个列。目前无法直接获取单元格容器,因此无法直接更改单元格容器。

您的方案的解决方法是我们能够获取特定单元格中的内容。例如,DataGrid 的默认内容是 TextBlock。然后你可以改变它的前景。

 private void dataGrid1_CellEditEnded(object sender, DataGridCellEditEndedEventArgs e)
    
        //Style style = new Style();
        //style.TargetType = typeof(DataGridCell);
        //style.Setters.Add(new Setter(DataGridCell.ForegroundProperty, new SolidColorBrush(Windows.UI.Colors.Red)));
        //e.Column.CellStyle = style;

        TextBlock d = e.Column.GetCellContent(e.Row) as TextBlock;
        d.Foreground = new SolidColorBrush(Windows.UI.Colors.Red);
        
    

【讨论】:

以上是关于更新单个单元格的 UWP DataGrid 样式的主要内容,如果未能解决你的问题,请参考以下文章

c# wpf datagrid 模板列修改某个单元格,更新所选行另一个单元格的值,如何做到呢?

在datagrid里怎么获得已修改过单元格的值并更新到数据库里?

更改 datagridview 行中单个单元格的样式

带有converterParameter的Datagrid单元格样式

c# datagridview 单个 单元格的样式(即字号或者字体颜色)发生改变时候,触发啥事件???

Xamarin Form - 如何在 UWP 中为 MyToolkit.Controls.DataGrid 设置样式