2011-02-15 71 views
4

我在WPF中有一個DataGrid。 DataGrid綁定到DataTable中的數據。 DataGrid具有ItemsSource =「{Binding}」。沒有設置DataGridTextColumn條目。 DataTable列/行是通過數據庫表動態確定的。在DataGrid中使用DataTable WPF單個單元格顏色

在下面的數據庫列名的例子中放入列表和數據表是設置所以下面在第一列的名稱和一系列的整數值:

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的是與數據表關聯(綁定)

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。在更新之後,我確定應該更新底層DataTable的行和列,然後更新DataGrid。這一切都很好。

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

最後問題:如何根據該單元格中的值更新DataGrid的特定單元格顏色。在我接收數據的API的回調中,單元格不斷更新。所以我想更新進來的細胞的顏色。

我沒有結婚,我的設計。我不想根據我已經完成的代碼使這個模型合適。我對大多數任何想法都有興趣,但我不希望硬編碼列名。我還希望有一種方法可以檢查單元格的顏色,然後在必要時重新繪製(出於速度/ CPU原因)。提前感謝您的幫助。

+0

似乎沒有很好的解決方案。在WPF中,Winforms,邊界不可能和可怕的醜陋非常容易 – rolls 2016-11-01 06:02:40

回答

相關問題