我有一个具有以下绑定的文本框:
<TextBox Binding={Path=MyStr, Mode=TwoWay}>
我的问题是绑定仅在文本框失去焦点时触发,而不是针对用户输入的每个字符。
文本框还有一个可以正确触发的 OnTextInput 函数,但是如何在后面的代码中激活绑定?
*我宁愿以纯粹的 mvvm 方式来做(如果可能的话,不要使用窗口的代码)
任何答案都将被接受 mvvm 与否。
这里:
<TextBox Text="{Binding Path=MyStr, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
现在您的绑定属性将在每个字符上更改。
您可以使用 updatesource 触发器并将其设置为属性已更改
<Binding Source="{StaticResource myDataSource}" Path="Name"
UpdateSourceTrigger="PropertyChanged"/>
更改的那一刻,它会将更新后的值发送回您的 DataContext
在 msdn 上:http:
//msdn.microsoft.com/en-us/library/system.windows.data.updatesourcetrigger.aspx
有一个名为 PropertyChanged 的 UpdateSourceTrigger,如果您在更改文本框的文本时将其用作更新触发器,它将触发,并且在您的绑定属性设置器中,您可以执行文本更改时需要执行的任何操作。
<TextBox Text="{Binding Path=Text,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />