c# - MVVM-有没有一种方法可以在不使用数据绑定(bind)的情况下获取和设置文本框的文本?

标签 c# wpf mvvm textbox

我需要能够获取和设置文本框的文本,但我不希望文本框文本中的每一个更改都更新我的 View 模型中的字符串。在我看来,将字符串绑定(bind)到文本框的文本属性几乎与更新文本框的 textchanged 事件上的字符串一样低效,还是我错了?

最佳答案

默认 UpdateSourceTrigger用于绑定(bind)到 TextBox.TextLostFocus ,这意味着 View 模型中的字符串仅在离开 TextBox 时更新。

当然,如果你做这样的事情

<TextBox Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}" />

那么您的字符串将在每次文本框中发生更改时更新。所以,是的,它“几乎与在文本框的 textchanged 事件上更新字符串一样低效”。

尽管如此,我在这里并没有看到现实世界的问题:即使您的用户打字速度非常快,更新内存中的字符串也不是需要花费大量时间的操作。其实TextBox本身对用户输入的处理(显示输入的字符,到达框尾时向左滚动文本等)也需要相当多的处理,所以我不认为更新您的字符串会造成如此不合理的额外负担。

关于c# - MVVM-有没有一种方法可以在不使用数据绑定(bind)的情况下获取和设置文本框的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2660099/

相关文章:

json - MvvmCross:SimpleRestService.cs 中的 JSON 错误

c# - 刚体圆周运动

c# - MVVM 在 VievModel 中使用 ShowViewModel 进行交叉导航

c# - wpf 应用程序 mvvm 如何正确构建

c# - 以编程方式将系列添加到 XAML 中定义的 OxyPlot

xaml - 将PopUp放置在Itemscontrol中

c# - 更改 ASP.NET Identity 以使用现有数据库

c# - 多态 LINQ 查询

c# - WPF 3D - 应用转换,更改基础对象值

c# - 如何将数据传递给 wpf mvvm 对话框?