2015-08-14 3 views
1

Im пытается изменить цвет фона отредактированной ячейки в связанном DataGrid. Например, после того, как пользователь изменит значение в ячейке, я вызову mydatagrid.Items.Refresh(), чтобы обновить остальные значения моего столбца и изменить отредактированный фон ячейки на LightPink.WPF: Показать ячейку отредактирован в связанной DataGrid

ответ

0

Вы можете попробовать поиграть с 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; 
      } 
     } 
    } 
Смежные вопросы