簡體   English   中英

使用DataTable在DataGrid中使用WPF單個單元格顏色

[英]WPF individual cell colors in DataGrid using 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問題可以為您提供示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM