WPF 数据变化动画

2023-12-12

我正在开发一个列出一些对象的 WPF 网格。如果对象的数据发生变化,我想启动动画。

下面列出了 XAML 代码的摘录

    <ListView Name="ListViewEmployeeDetails" Grid.Row="1" Margin="4,109,12,23"  ItemsSource="{Binding Products}"  >
        <ListView.View>
            <GridView x:Name="grdTest">
                <GridViewColumn Header="ID"  Width="100">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock x:Name="idField" Text="{Binding ID}" TextDecorations="Underline" Foreground="Blue"/>
                            <DataTemplate.Triggers>
                                <DataTrigger Binding="{Binding ID}">
                                    <DataTrigger.EnterActions>
                                        <BeginStoryboard>
                                            <Storyboard>
                                                <DoubleAnimation Duration="0:0:5" To="0.0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="idField"/>
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </DataTrigger.EnterActions>
                                </DataTrigger>
                            </DataTemplate.Triggers>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"  Width="100" />
                <GridViewColumn Header="Price" DisplayMemberBinding="{Binding Price}" Width="100" />
                <GridViewColumn Header="Reliab" DisplayMemberBinding="{Binding Reliability}" Width="100" />
            </GridView>
        </ListView.View>
    </ListView>

每当属性发生更改时,我都会触发 PropertyChangedEvent。例如,ID 的设置器如下所示:

        set
        {
            m_ID = value;
            OnPropertyChanged("ID");
        }

OnPropertyChanged 函数如下所示:

    #region INotifyPropertyChanged Members

    public event PropertyChangedEventHandler PropertyChanged;
    private void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
    #endregion

然而,当ID改变时,动画不会被触发。知道如何解决这个问题吗?


您应该使用事件触发器:

尝试这样的事情:

<DataTemplate.Triggers>
    <EventTrigger RoutedEvent="Binding.TargetUpdated">
        <BeginStoryboard>
           <Storyboard>
              <DoubleAnimation Duration="0:0:5" To="0.0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="idField"/>
           </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</DataTemplate.Triggers>

编辑:不要忘记在模板中设置它!

<TextField Name="idField" Text="{Binding ID, NotifyOnTargetUpdated=True}" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 数据变化动画 的相关文章

随机推荐

  • 解析 Unity 推送示例不起作用

    我正在努力在我的 Unity Android 应用程序上使用 Parse 已经工作了几天但还没有成功 无论我多么努力 我都无法为 Android 注册我的设备令牌 而这是向 Android 发送推送通知所需的 下面是我的示例代码和清单片段
  • C++ 友元类 std::vector

    是否可以便携地执行以下操作 struct structure structure private only allow container copy construct structure const structure in genera
  • Google 域 API 访问错误

    我是谷歌应用程序帐户用户 当我尝试访问 Google Plus Domains API 时 出现此错误 不允许访问 Google Domains API 因为用户已同意不兼容的范围 我要求的范围是 https www googleapis
  • Windows Workflow 4 关联查询在实例密钥计算中包含网站实例名称并失败

    我正在尝试在 Azure 上托管一个长时间运行的工作流服务 但我遇到了关联问题 我已将 timeToUnload 和 timeToPersist 设置为 0 并且在工作流程中勾选了 发送前保留 这不是持久性问题 而是与实例键的计算方式有关
  • 如何用concat替换pandas的append?

    你能帮我在这段代码中将append替换为concat吗 saida pd DataFrame for x y in lCodigos items try df consulta bc x logging info f Indice y li
  • C# 中根据框架版本进行条件编译

    是否有任何预处理器符号允许类似的事情 if CLR AT LEAST 3 5 use ReaderWriterLockSlim else use ReaderWriterLock endif 或其他方式来做到这一点 我认为没有任何预定义的
  • Android 支持库中的 ActionBar#setDefaultDisplayHomeAsUpEnabled 是什么?

    我知道什么setDisplayHomeAsUpEnabled确实如此 但是什么是setDefaultDisplayHomeAsUpEnabled因为我只能想知道 没有找到文档 除了正在使用之外找不到任何东西 该方法仅在Support Act
  • 审查委员会差异未上传

    我目前正在尝试使用审查板进行比较 但不断收到模糊的错误消息 Error uploading diff Your review request still exists but the diff is not attached 调试消息也没有
  • 在 PHP 中使用soap 添加 Jira 注释 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如何在 PHP 中使用 SOAP 在 Jira 中添加注释 soapClient
  • 如何在 gnuplot 中创建 3d 相空间图?

    看这篇文章封闭但未加密 我有一些二进制数据 我想执行该文章中所示的 gnuplot 但使用我的数据 对于三维相空间图 序列 a b c d e f等可以作为空间坐标 a b b c c d b c c d d e c d d e e f 等
  • 如何在 Android OpenGL ES 中应用拖放和缩放

    我有一个问题 不知道如何添加触摸或长按来操纵 OpenGL 平移和缩放参数 目前我的编码是在手机屏幕中间显示纹理 我想用手指拖动和缩放纹理 那么如何操作OpenGL翻译和缩放参数呢 这是我的主要课程 import android app A
  • `fwrite` 在 `fread` 之后不能直接工作吗?

    我有一个使用 stdio 来读取和写入二进制文件的程序 它会缓存当前流位置 并且如果读 写偏移量已经位于所需位置 则不会进行查找 然而 一个有趣的问题出现了 那就是当读取一个字节并写入下一个字节时 它实际上并没有被写入 这是重现该问题的程序
  • ContextMenu 并以编程方式选择一个项目

    似乎没有用于以编程方式 选择 ContextMenu 项的 API 我所说的选择相当于点击向上和向下键 或将鼠标悬停在某个项目上 当显示上下文菜单时 我实际上只需要选择第一项 我试图在显示菜单时触发向下键事件 但什么也没发生 也许我错误地构
  • 使sql视图可编辑

    我已经制作了这个 sql 视图来组合一些表并且它可以工作 但它不可编辑 我无法插入 删除 编辑 数据directly在其中 但前提是我在初始表中这样做 那么有什么方法可以直接在视图中执行相同的操作 编辑数据 Create view tabl
  • 如何使用jupyter_client获取执行结果?

    我想使用 jupyter client 执行一些 python 代码并获得结果 这是我的示例代码 但我无法得到输出hello world 有人可以帮助我吗 谢谢 import jupyter client kernel manager ke
  • Jackson 和 java.sql.Time 序列化/反序列化

    考虑这个属性Hibernate 管理实体 JsonFormat pattern HH mm Column name start time private java sql Time startTime 我发布了一个JSON 对象为 Requ
  • 来自已安装应用程序的 OpenID 身份验证

    我目前正在计划一个新的网络项目 客户端将使用常规 Web 浏览器进行连接 如果是常规支持 Java 的手机 则使用 j2me 客户端进行连接 我真的很想利用 OpenID 身份验证 对于常规网络浏览器来说 事情非常简单 但是 我真的不确定已
  • gcc-4.2 失败,退出状态为 1

    我一直在寻找这个问题的答案 但找不到 所以就在这里 我正在尝试安装统一转换器使用 setup py 文件将其导入 MacOS X Lion Python 2 7 2 python setup py install 然后我得到以下错误代码 r
  • ES6类中的构造函数和原型中的构造函数之间的区别?

    ES6 类和函数原型都有一个contructor 但我想知道它们是一样的吗 让我给出更多解释 因此 我创建了一个 Cat 函数 例如 const Cat function name this name name The Cat has th
  • WPF 数据变化动画

    我正在开发一个列出一些对象的 WPF 网格 如果对象的数据发生变化 我想启动动画 下面列出了 XAML 代码的摘录