c# - 以编程方式更改 WPF Datagrid 行背景颜色

标签 c# wpf datagrid

我在尝试更改 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/

相关文章:

DataGrid 中的 WPF 图像绑定(bind)

c# - wpf 键盘焦点 : losing focus after menu opens?

.net - Winforms 的多列组合框控件

apache-flex - 动态设置dataGridColumn的ItemRenderer

c# - 在 C# 中的 DataGrid 中填充 ComboBox

c# - 字符串拆分为 Linq 对象?

c# - 如何使用 Google 的探戈示例让 AR 示例为 Unity 运行

c# - 如何根据动态页面内容自动生成SEO关键词?

c# - 一次反序列化json数组流一项

c# - 在 UserControl WPF 的视口(viewport)中使用 VisualBrush