簡體   English   中英

從Silverlight 4中的代碼背后更改DataGridCell的背景

[英]Change a DataGridCell's background from the codebehind in Silverlight 4

我正在編寫一個silverlight應用程序,該應用程序允許您通過輸入的定界符來解析復制的文本。 解析數據並將其放入網格后,用戶可以“清理”數據。 這會將單元格的當前值與該列的允許值進行比較,選擇其最佳猜測值,然后通過ItemsSource屬性將數據重新綁定到網格。

我的問題是我知道每個已“清理”的單元格的坐標,並且我想突出顯示此單元格或更改其背景顏色。 據我所知,您可以單獨設置DataGridCell的背景,但是我無法訪問DataGridCell。 我可以訪問Grid的列和行,但是它們似乎也無法像我希望的那樣提供對DataGridCell的訪問。 在設置ItemsSource之后,是否有人可以訪問DataGridCell?

如果遍歷您的ItemsSource綁定的集合,則可以獲取每一行並遍歷各列,以獲取內容和單元格-像這樣(技巧是content.Parent,作為DataGridCell):

var collection = grid.ItemsSource;
foreach (var dataItem in collection)
{
  foreach (var col in grid.Columns)
  {
    var content = col.GetCellContent(dataItem);
    if (content != null)
    {
        DataGridCell cell = content.Parent as DataGridCell;
        // do whatever you need to do with the cell like setting cell.Background 
    }
  }
}

此代碼對於更改單元格的顏色很有用。

void datagrid_LoadingRow()
    {

        var collection = datagrid.ItemsSource;
        foreach (var dataItem in collection)
        {
            foreach (var col in datagrid.Columns)
            {
                var content1 = col.GetCellContent(dataItem);
                if (content1 != null)
                {
                    TextBlock block = content1 as TextBlock;
                    if (block != null)
                    {
                        DataGridCell cell = content1.Parent as DataGridCell;

                        string cellText = block.Text;
                        if (cellText == "True")
                        {
                            cell.Background = new SolidColorBrush(Colors.Green);
                        }
                        if (cellText == "False")
                        {
                            cell.Background = new SolidColorBrush(Colors.Red);
                        }                            
                    }


                }                  

            }
        }
    } 

暫無
暫無

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

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