1

好的,我花了 2 天时间试图弄清楚如何做到这一点,并且到目前为止已经获得了“失败”的分数。

设计是这样的:

  1. ViewModel 类公开了一个名为 People 的公共 ObservableCollection 属性。
  2. XAML 视图绑定到此属性

期望的行为是这样的:

  1. 向 ViewModel 的集合中添加一个新的 Person
  2. 当新记录出现在 XamDataGrid 中时,视图会为新记录的背景设置动画,基本上会以红色闪烁 2 秒。

我尝试将 grid 的 InitializeRecord 挂接到 EventTrigger 的 RoutedEvent 属性中,但无济于事。(事件名称无效,所以我认为这不是 RoutedEvent)

此外,由于我试图尽可能保持 MVVM,因此我想避免任何需要代码隐藏更改的解决方案。请仅使用 XAML。

4

1 回答 1

1

向您的 People 类添加一个属性,例如 newRow。然后使用 newRow 属性上的数据触发器将新样式应用于 CellValuePresenter,将其背景颜色更改为您喜欢的任何颜色。在内部,您可以更改 newRow 的值以禁用触发器。

    <DataTrigger Binding="{Binding .DataItem[IsRecentUpdate]}" Value="True">
      <Setter Property="Background" Value="#FFFFE87C" />
      <Setter Property="BackgroundHover" Value="#FFFFE87C" />
      <Setter Property="BackgroundActive" Value="#FFFFE87C" />
      <Setter Property="BackgroundSelected" Value="#FFFFE87C" />
    </DataTrigger>
于 2009-11-10T09:32:48.980 回答