C# Datagridrow动画无法正常工作

C# Datagridrow动画无法正常工作,c#,wpf,xaml,C#,Wpf,Xaml,当属性LastUpdated的值更改时,我正在尝试设置行的动画。我遇到的问题是,仅当我将行添加到网格时,动画才会运行,但当我将属性更改为“测试”时,动画不起作用。有什么问题 <DataGrid.RowStyle> <Style TargetType="{x:Type DataGridRow}" BasedOn="{StaticResource MetroDataGridRow}"> <Style.Triggers>

当属性
LastUpdated
的值更改时,我正在尝试设置行的动画。我遇到的问题是,仅当我将行添加到网格时,动画才会运行,但当我将属性更改为“测试”时,动画不起作用。有什么问题

<DataGrid.RowStyle>
    <Style TargetType="{x:Type DataGridRow}"
           BasedOn="{StaticResource MetroDataGridRow}">
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding LastUpdated, Converter={StaticResource ValueHasChangedConverter}}"
                               Value="True" />
                </MultiDataTrigger.Conditions>
                <MultiDataTrigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard AutoReverse="True"
                                    RepeatBehavior="3x">
                            <ColorAnimation From="Transparent"
                                            Duration="00:00:0.5"
                                            To="{StaticResource AccentColor}"
                                            Storyboard.TargetProperty="(DataGridRow.Background).(SolidColorBrush.Color)" />
                        </Storyboard>
                    </BeginStoryboard>
                </MultiDataTrigger.EnterActions>
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>

public class ValueHasChangedConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return true;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return DependencyProperty.UnsetValue;
    }
}

public class OrderStatusDataWrapper : INotifyPropertyChanged
{

    private DateTime _lastUpdated;
    public DateTime LastUpdated
    {
        get => _lastUpdated;
        set
        {
            _lastUpdated = value;
            RaisePropertyChanged();
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

公共类值已更改转换器:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性)
{
返回true;
}
公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性)
{
返回dependencProperty.unset值;
}
}
公共类OrderStatusDataWrapper:INotifyPropertyChanged
{
私有日期时间\u最新更新;
公共日期时间最后更新
{
get=>\u最新更新;
设置
{
_lastUpdated=值;
RaisePropertyChanged();
}
}
公共事件属性更改事件处理程序属性更改;
私有void RaisePropertyChanged([CallerMemberName]字符串propertyName=null)
{
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(propertyName));
}
}

转换器始终返回true。这就是目的吗?这还意味着,从绑定的角度来看,值永远不会更改。@ErnodeWeerd-Hi!是的,这就是目的。当该属性更改时,我需要设置行的动画,也许我需要添加一些内容,但我没有看到问题。但是转换器将始终返回true,因此UI将永远不会注意到更改。为了让UI注意到更改,转换器的结果必须更改。