WPF:显示在绑定数据网格中编辑的单元格

本文关键字:网格 编辑 单元格 数据网 数据 显示 绑定 WPF | 更新日期: 2023-09-27 18:08:03

我试图改变我绑定的DataGrid中编辑单元格的背景颜色。例如,在用户更改单元格中的值之后,我将调用mydatagrid.Items.Refresh()来更新其余的列值,并将编辑后的单元格背景更改为LightPink。

WPF:显示在绑定数据网格中编辑的单元格

您可以尝试使用DataGridBoundColumn ElementStyle属性来做您想做的事情。

扩展其中一个DataGridColumns并在网格中使用它可能更容易。可能看起来像这样:

  class DataGridTextColumnEx : DataGridTextColumn
    {      
        protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
        {
            var element = base.GenerateElement(cell, dataItem);
            cell.Tag = dataItem;
            element.IsVisibleChanged += Element_IsVisibleChanged;
            return element;
        }
        private void Element_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            var textBlock = sender as TextBlock;
            var cell = textBlock.Parent as DataGridCell;
            var data = cell.Tag;
            if (textBlock.Visibility == Visibility.Visible)
            {
                //Use data to do validation...
                textBlock.Background = Brushes.LightPink;
            }
        }
    }