加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用DataTable在DataGrid中使用WPF单个单元格颜色

发布时间:2020-12-15 21:15:43 所属栏目:百科 来源:网络整理
导读:我在 WPF中有一个DataGrid. DataGrid绑定到DataTable中的数据. DataGrid具有ItemsSource =“{Binding}”.没有设置DataGridTextColumn条目. DataTable列/行是通过数据库表动态确定的. 在下面的示例中,数据库列名称被放入列表中,并且设置了DataTable,因此第一
我在 WPF中有一个DataGrid. DataGrid绑定到DataTable中的数据. DataGrid具有ItemsSource =“{Binding}”.没有设置DataGridTextColumn条目. DataTable列/行是通过数据库表动态确定的.

在下面的示例中,数据库列名称被放入列表中,并且设置了DataTable,因此第一列中有一个名称,下面是一系列整数值:

DataTable theDataTable= new DataTable();
theDataTable.Columns.Add("Name",typeof(string));
for(int i = 0; i < columnNameList.Count ; i++)
    theDataTable.Columns.Add(columnNameList[i],typeof(int));

接下来,DataGrid与DataTable相关联(绑定)

theDataGrid.DataContext = theDataTable;

接下来,在DataTable中设置行.同样,行数由数据库中的用户确定.数据库调用后,用户名将放入列表中.行值默认为零.

for (int i = 0; i < usersNames.Count ; i++)
{
    DataRow newDataRow = theTradersDataTable.NewRow();
    newDataRow["Name"] = usersNames[i];

    for(int j = 0; i < columnNameList.Count ; j++)
    {
        newDataRow[columnNameList[j]] = 0;
    }
    theDataTable.Rows.Add(newDataRow);
 }

在DataGrid设置之后,我连接到一个API,该API提供带有用户信息更新的回调.在更新时,我确定应该更新基础DataTable的行和列,然后更新DataGrid.这一切都很好.

//inside some API callback
theDataTable.Rows[rowNumber][columnNumber] = someDataSentInViaAPI;

最后一个问题:如何根据该单元格中的值更新DataGrid的特定单元格颜色.在从我接收数据的API回调时,单元格不断更新.所以我想在更新进来时更新单元格的颜色.

我没和我的设计结婚.我不想根据我已经完成的代码使这个模型适合.我对任何想法都很满意,但我不想硬编码列名.我也更喜欢一种方法,它允许我检查单元格的颜色,然后只在必要时重新绘制(出于速度/ CPU的原因).提前感谢您的帮助.

解决方法

查看数据触发器.以下 Stack Overflow question可以举个例子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读