当我尝试在WPF应用程序后面的代码中更改数据网格行时遇到问题,我的目标是在选择行并单击按钮“ Valider”时更改行颜色,我的代码是如下所示。 我找到了一些答案,但没有一个对我的案子有用。
private void Valider_Click(object sender, RoutedEventArgs e)
{
DataGridRow dataGridRow = InventaireItemGrid.SelectedItem as DataGridRow;
dataGridRow.Background = Brushes.Green;
}
执行时,我得到一个nullreferenceexception,调试器将dataGridRow指向为null(尽管该行包含数据)。
答案 0 :(得分:1)
SelectedItem
属性引用Items
集合中的相应对象。您可以使用ItemContainerGenerator
获取对DataGridRow
容器的引用:
private void Valider_Click(object sender, RoutedEventArgs e)
{
DataGridRow dataGridRow = InventaireItemGrid.ItemContainerGenerator.ContainerFromItem(InventaireItemGrid.SelectedItem) as DataGridRow;
if (dataGridRow != null)
dataGridRow.Background = Brushes.Green;
}
尽管您想尝试做的事,最可能有更好的方法,例如使用数据绑定和触发器。