我在尝试更改 WPF
应用程序后台代码中的 DataGrid
行时遇到问题。我的目标是在选择行和单击按钮 Valider
时更改行颜色。我的代码如下所示。
我找到了一些答案,但没有一个对我的案例有用。
private void Valider_Click(object sender, RoutedEventArgs e)
{
DataGridRow dataGridRow = InventaireItemGrid.SelectedItem as DataGridRow;
dataGridRow.Background = Brushes.Green;
}
当我执行时,我得到一个NullReferenceException
。调试器指向 dataGridRow 为空(尽管该行包含数据)。
最佳答案
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;
}
很可能有更好的方法来完成您想要做的任何事情,例如使用数据绑定(bind)和触发器。
关于c# - 以编程方式更改 WPF Datagrid 行背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53392174/