簡體   English   中英

具有可變列數的WPF Datagrid並根據值更改背景色

[英]WPF Datagrid with variable number of columns AND change background color depending on value

我試圖做一個網格,代表一個月的預訂(Excel風格)。

為此,我使用了WPF Datagrid並在C#代碼中定義了我的列:

for (int i = 0; i < noOfDaysInMonth; i++)
{
        DataGridTextColumn tmpColumn = new DataGridTextColumn
        {
               Header = (i + 1).ToString(),
               Binding = new Binding("CellStrings[" + i + "]"),
        };

overviewBookingsDataGrid.Columns.Add(tmpColumn); 

現在可以正常工作了。 我遇到的問題是,我不知道如何為每個單元格設置背景顏色,具體取決於插槽是否已滿,部分預定或空了。 我發現的所有示例都在XAML中,並使用該列將其定義為togheter,但我不知道這會轉換為C#。

您需要在XAML中定義datagridcell樣式。 根據單元格的Tag屬性設置一些觸發器。 例如,如果它是“綠色”,則將您的單元格塗成綠色。

填充數據網格后,您可以遍歷代碼中的表,獲取每個必需項的datagridcell,將單元格的標簽設置為適當的值,樣式觸發器將為您着色單元格(如果您想清除背景顏色,則將Tag設置回null)。 或者,如果要避免XAML,可以直接設置單元格背景。

網上有很多示例,如何檢索給定項目的datagridcell,但我會提一個警告-由於wpf datagrid是默認虛擬化的,因此您需要將項目滾動到視圖中並調用UpdateLayout ()在項目的datagridrow上,然后可以安全地訪問給定datagridrow的datagridcell。

暫無
暫無

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

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