在 TargetUpdated 事件上动画 DataGrid 单元格背景

Mar*_*cci 2 wpf binding datagrid

我一直在寻找解决方案,但没有找到任何有效的方法。

问题很简单:

  • DataGrid(只读)绑定到对象集合(实现 INotifyPropertyChanged)
  • 当数据对象的某些属性发生变化时,单元格背景应具有动画效果(例如,从红色变为透明)

我已经尝试使用带有 EventTrigger (TargetUpdated) 的样式来启动 Storyboard,但它有副作用,当 DataGrid 首次填充时以及滚动或重新排序时,所有单元格的背景都会动画。

我知道还有其他一些类似的问题,但我没有看到可行的解决方案。
有没有人能够做到这一点?我非常不想有任何代码隐藏,但如果有必要,我会忍受它......

编辑:
我注意到对于我想要实现的目标存在一些混淆:
假设一个单元格(它是数据对象的基础属性)具有值“A”。在某些时候它会变成“B”(例如从服务器更新)。此时背景应该“闪烁”(例如从红色到透明的 1 秒动画)。在所有其他时间背景应该是透明的。

Mar*_*cci 5

我终于在 MS 论坛上找到了正确的方向,解决方案是使用附加行为来注册 OnTargetUpdated 处理程序并启动故事板。我之前已经尝试过这种方法,但显然只有当单元格的 IsLoaded 属性为真时才必须启动 Storyboard。这消除了我上面提到的副作用。

这是论坛帖子的链接。