WPF MVVM 文本框文本绑定与 changedText 事件 [英] WPF MVVM textbox text binding vs changedText event

查看:218
本文介绍了WPF MVVM 文本框文本绑定与 changedText 事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 Text 属性绑定到 viewmodel 的文本框.我已将 TextChanged 事件绑定到视图模型.

I have textbox with Text property binded to viewmodel. I have binded TextChanged event to viewmodel.

但问题是,当文本框失去焦点时,事件会触发每个符号添加到文本框(这很好)并且视图模型中的文本会刷新(这对我不利).

But the problem is that the event fires every sign is added to textbox(that's good) and Text in viewmodel is refreshed when textbox lost focus(that's bad for me).

如何让这个 Text 属性在每次签名后刷新?

How to make this Text property refreshing after each sign?

或者如何将发送者作为参数发送?我认为发件人会刷新数据.

Or how to send sender as parameter? I think sender would have resfreshed data.

我的交互 xaml:

<interactivity:Interaction.Triggers>
    <interactivity:EventTrigger EventName="TextChanged">
        <helpers:CustomCommandInvoker Command="{Binding UnlockChangedCommand}"   />
     </interactivity:EventTrigger>
 </interactivity:Interaction.Triggers>

我正在使用 RelayCommand.

I'm using RelayCommand.

推荐答案

对此有一个非常简单的答案;使用 UpdatePropertyTrigger=PropertyChanged.这将在每次更改字符时更新您的 VM 属性.不需要触发器或命令:-)

There is a really simple answer to this; use UpdatePropertyTrigger=PropertyChanged. This will update your VM property each time a character is changed. No need for triggers or commands :-)

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

阅读此处了解更多信息:http://msdn.microsoft.com/en-us/library/system.windows.data.updatesourcetrigger(v=vs.110).aspx

Read here for more info: http://msdn.microsoft.com/en-us/library/system.windows.data.updatesourcetrigger(v=vs.110).aspx

这篇关于WPF MVVM 文本框文本绑定与 changedText 事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆