gpt4 book ai didi

wpf - TextBox UpdateSourceTrigger = PropertyChanged - 它真的会影响性能吗?

转载 作者:行者123 更新时间:2023-12-01 04:10:20 26 4
gpt4 key购买 nike

MSDN 文档指出:

Bindings that are TwoWay or OneWayToSource listen for changes in the target property and propagate them back to the source. This is known as updating the source. Usually, these updates happen whenever the target property changes. This is fine for check boxes and other simple controls, but it is usually not appropriate for text fields. Updating after every keystroke can diminish performance and it denies the user the usual opportunity to backspace and fix typing errors before committing to the new value. Therefore, the default UpdateSourceTrigger value of the Text property is LostFocus and not PropertyChanged.



我了解,在更新直接进入数据库或通过网络,或者数据量非常大的情况下,在 TextBoxes 上使用 UpdateSourceTrigger = PropertyChanged 确实会降低性能。

但是,如果它只是更新一个简单的 DependencyProperty,或者一个 Entity Framework 对象的属性(在提交之前),那么性能损失是否可以忽略不计?

只是想知道,因为我正在创建一个 WPF 应用程序,它跟踪正在编辑的对象的状态,并根据是否进行了更改来优化“保存”按钮的外观。我认为确定更改的最简单方法是酌情捕获相关的 SourceUpdated 事件。当文本框的 UpdateSourceTrigger = PropertyChanged 时,它的工作效果最佳,因为用户会立即获得“可保存”更改的反馈。

最佳答案

警告您性能下降的原因是,在大多数情况下,如果您需要在每次击键时更新源属性,那是因为您需要在属性值更改时发生一些事情。毕竟,如果您不需要发生那种“事情”,那么您就不会真正关心属性何时更新,只要它最终更新即可。

对性能的真正影响完全取决于那个“东西”是什么。这完全取决于您的应用程序。如果那个“东西”正在格式化并显示另一个 TextBlock 中的值,在每次击键时都这样做可能不会引起注意。如果它正在过滤 10,000 行 DataTable并刷新 DataGrid绑定(bind)到它,它可能会。

那你怎么讲?嗯,有两种方法:

1) 了解您的应用程序。如果您在更新源属性时知道应用程序在做什么,那么您可以预测是否在每次击键时都执行此操作会成为问题。当你说“我想我想知道它是否一开始看起来很好,但实际上会在我不知道的某些情况下引起问题”,你真正想说的是,“如果我不这样做会发生什么”不知道用户按键时我的应用程序在做什么?”

2) 如果您不知道用户按下某个键时您的应用程序在做什么,请对其进行分析。

关于wpf - TextBox UpdateSourceTrigger = PropertyChanged - 它真的会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532383/

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