我有一个包含多个项目的GridView(从List中绑定10个项目)。而且(简单的例子)让我有一个文本字段和按钮。在文本字段中,我输入0到9的数字。当我点击一个按钮时,我想要在文本字段中输入索引的项目背景。因此,当我输入0时,我想要第一个项目来更改背景等等。我有一个全局列表,我可以从该列表中获取对象,但我不知道如何在gridview上更改此项目的背景
答案 0 :(得分: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,您可以在其中设置给定网格行的正常背景和聚焦背景。
答案 1 :(得分:0)
您可以定义DataGridViewCellStyle
对象并设置其属性,然后从您的datagridview调用任何单元格 -
DataGridViewCellStyle dgvs = new DataGridViewCellStyle();
dgvs.BackColor = Color.Red;
yourDGV.Rows[0].Cells[0].Style = dgvs;