【问题标题】:Datagrid cell background error after changing validation error behaviour更改验证错误行为后的 Datagrid 单元格背景错误
【发布时间】:2015-11-04 05:52:32
【问题描述】:

我尝试移动下一个单元格进行编辑,尽管存在验证错误。我使用了以下代码。

protected override void OnCellEditEnding(DataGridCellEditEndingEventArgs e)
{
   e.Cancel = true;
}

参考文章- edit wpfdatagrid other cells while one of it's cell is invalid

它工作正常,但是当我向它添加背景行颜色时,编辑时颜色会消失

【问题讨论】:

  • 代码sn-p与行的背景色有什么关系?我不清楚你在问什么。如果您能澄清这一点,那就太好了
  • sn-p 所做的代码是启用单元格的编辑,无论某些单元格是否有像上面图像中的验证错误。所以代码正在完成这项工作。但问题是代码何时执行背景颜色正在变为白色。跳过单元格后我需要保持与黄色相同的颜色
  • 但是有一个问题是所有数据都被重置了
  • 这是因为单元格处于编辑模式(默认背景颜色为白色)。尝试弄清楚如何更改编辑背景。 (我现在不能,因为范围内没有 PC)
  • 如果我们使用 e.cancel = true;如何检查是否存在验证错误或不使用后面的代码?

标签: c# wpf xaml


【解决方案1】:

处于编辑模式的单元格有不同的样式。因为您通过显示的代码取消了转义编辑模式,所以一旦您开始编辑,此样式将始终显示。请记住,处于编辑模式的单元格也可能导致其他问题。最好将代码的行为更改为仅在出现验证错误时取消CellEditEnding-Event。

解决颜色变化的问题:DataGirdColumns 有一个可以更改的EditingElementStyle。要将EditingElementStyle 的背景(在此DataGridTextColumn“测试”示例中)绑定到普通(非编辑)背景,请使用以下 XAML:

<DataGridTextColumn Header="Test">
    <DataGridTextColumn.EditingElementStyle>
        <Style TargetType="TextBox">
            <Setter Property="Background" Value="{Binding Background}"/>
        </Style>
    </DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>

那么当你编辑一个单元格时背景不会改变。

【讨论】:

  • 我试过这个但没有奏效。我在资源字典中声明了它。那么如何继续使用这种方法。
  • 你的风格应该有点像 .
  • 但是当我添加它时说,成员“背景”无法识别或无法访问
  • 样式不适用
猜你喜欢
  • 2013-08-23
  • 2013-01-14
  • 2011-01-27
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 2011-06-29
相关资源
最近更新 更多