我有一个包含多个项目的 GridView(10 个项目从列表中绑定)。并且(举个简单的例子)让我有一个文本字段和按钮。在文本字段中,我将键入从 0 到 9 的数字。当我单击按钮时,我想更改项目的背景,并在文本字段中键入索引。因此,当我键入 0 时,我希望第一项更改背景等。我有一个全局列表,我可以从该列表中获取对象,但我不知道如何在 gridview 上更改该项目的背景
问问题
755 次
2 回答
1
您可以为该不同的项目创建一个DataTemplate (仅更改其背景)。然后,使用TemplateSelector,您可以确定您只想将该模板应用于其编号与绑定到 TextBox 的编号匹配的项目。
public class GridViewDataTemplateSelector : DataTemplateSelector
{
public override DataTemplate
SelectTemplate(object item, DependencyObject container)
{
FrameworkElement element = container as FrameworkElement;
if (element != null && item != null && item is GridViewRow)
{
GridViewRow rowitem = item as GridViewRow;
// Here's where you compare with actual selected number (change 1 with the method call to obtain it.
if (GridViewRow.RowIndex == 1)
return
element.FindResource("SpecialBackgroundRowTemplate") as DataTemplate;
else
return
element.FindResource("NormalBackgroundRowTemplate") as DataTemplate;
}
return null;
}
}
这里SpecialBackgroundRowTemplate
和NormalBackgroundRowTemplate
是 DataTemplates,您将在其中为给定的网格行设置正常背景和聚焦背景。
于 2012-09-25T17:09:27.787 回答
0
您可以定义DataGridViewCellStyle
对象并设置它的属性,然后从您的 datagridview 调用任何单元格 -
DataGridViewCellStyle dgvs = new DataGridViewCellStyle();
dgvs.BackColor = Color.Red;
yourDGV.Rows[0].Cells[0].Style = dgvs;
于 2012-09-25T17:16:10.697 回答