【问题标题】:WPF: Show a cell is edited in bound DataGridWPF:显示在绑定 DataGrid 中编辑的单元格
【发布时间】:2015-11-07 21:29:34
【问题描述】:

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

【问题讨论】:

    标签: c# wpf binding datagrid overriding


    【解决方案1】:

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

    扩展其中一个 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;
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-24
      • 2012-12-04
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多