【发布时间】:2013-11-22 11:25:32
【问题描述】:
我有一个datagrid,它绑定到一个datatable,每个单元格都有一个唯一的值,所以没有两个单元格具有相同的值。
我想将值为 1 (int32) 的单元格更改为绿色。注意,1 的值是动态的,这只是一个例子,它可以在 1-90 之间。
我已经四处搜索,大多数帮助都会根据坐标(即 (4,2) 或所选单元格)为您提供单元格的值。这不是我想要的,我想根据其值更改单元格的颜色。
有没有办法做到这一点,例如在 JavaScript 中,我会简单地为每个单元格分配一个与其值相等的 id,然后像$('#' + 1).css('background-color:green;') 这样的东西(注意:这可能不是正确的语法,但你明白了) .有没有这样简单的方法或标准的方法?
我的数据网格
<DataGrid Name="grid" ItemsSource="{Binding}" Height="300" Width="900"
AutoGenerateColumns="True"
VerticalScrollBarVisibility="Disabled" HorizontalAlignment="Center" VerticalAlignment="Top" RowHeight="40">
<DataGrid.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</DataGrid.ItemsPanel>
</DataGrid>
表创建
DataSet dataSet = new DataSet("myDS");
DataTable numbersTable = new DataTable("Numbers");
numbersTable.Columns.Add("Number", typeof(Int32));
for (int i = 1; i < 91; i++)
{
numbersTable.Rows.Add(i);
}
dataSet.Tables.Add(numbersTable);
grid.DataContext = numbersTable.DefaultView;
【问题讨论】:
-
您是否尝试通过遍历数据网格的每一行(foreach)来找到所需的值?我的意思是找到具有所需值的单元格的坐标,然后应用样式或其他...只是一个建议。
-
你能把这个作为答案,看看它是否有帮助?
标签: c# wpf datagrid datatable datagridcell