我需要能够获取和设置文本框的文本,但我不希望文本框文本中的每一个更改都更新我的 View 模型中的字符串。在我看来,将字符串绑定(bind)到文本框的文本属性几乎与更新文本框的 textchanged 事件上的字符串一样低效,还是我错了?
最佳答案
默认 UpdateSourceTrigger用于绑定(bind)到 TextBox.Text
是 LostFocus
,这意味着 View 模型中的字符串仅在离开 TextBox 时更新。
当然,如果你做这样的事情
<TextBox Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}" />
那么您的字符串将在每次文本框中发生更改时更新。所以,是的,它“几乎与在文本框的 textchanged 事件上更新字符串一样低效”。
尽管如此,我在这里并没有看到现实世界的问题:即使您的用户打字速度非常快,更新内存中的字符串也不是需要花费大量时间的操作。其实TextBox本身对用户输入的处理(显示输入的字符,到达框尾时向左滚动文本等)也需要相当多的处理,所以我不认为更新您的字符串会造成如此不合理的额外负担。
关于c# - MVVM-有没有一种方法可以在不使用数据绑定(bind)的情况下获取和设置文本框的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2660099/