gpt4 book ai didi

wpf - 在程序退出之前更新依赖属性

转载 作者:行者123 更新时间:2023-12-03 10:50:56 26 4
gpt4 key购买 nike

我在 RichTextBox 上创建了 Binary 类型的依赖属性,它允许我绑定(bind)到 ViewModel 中二进制形式 (byte[]) 的 FlowDocument。这很好用,该属性可以正确转换和返回。

每当 RichTextBox 失去焦点时,依赖属性的值就会使用 FlowDocument 的新二进制表示进行更新。

我的问题是,如果我一直在使用 RichTextBox 并关闭窗口,RichTextBox 不会失去焦点,因此依赖属性不会使用 FlowDocument 的新二进制表示进行更新,因此不会将新更改提交到数据库。在我的 ViewModel 中,我有一个 CleanUp 方法,当 ViewModel 准备好被处理时会调用该方法,我可以在其中保存更新的文档。

如果用户单击以关闭窗口,如何让依赖属性更新自身,因为 RichTextBox 不会失去焦点?
我头脑 Storm 了以下几点:

  • 通过消息广播告诉依赖属性更新自身。我不清楚如何在依赖属性中注册消息监听器。
  • 直接查询RichTextBox,获取Document,手动转换成二进制对象。
  • 获取 View 以将焦点移至虚拟控件,以便依赖属性现在自行更新。

  • 你们有什么感想?

    更新:依赖属性的 on changed 事件添加了一个事件处理程序,该处理程序正在等待 RichTextBox 失去焦点。正是这个处理程序用它的新值来更新依赖。

    最佳答案

    使用“PropertyChanged”的 UpdateSourceTrigger

    就像是:

    {Binding Path=MyProperty, 
    Mode=TwoWay,
    UpdateSourceTrigger=PropertyChanged}

    关于wpf - 在程序退出之前更新依赖属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698228/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com