为Decended TextBox更改绑定到TextProperty的值时获取更改事件

时间:2012-07-26 22:40:02

标签: c# .net wpf binding wcf-binding

我有自己的自定义TextBox类(称之为MyCustomTextBox)。在某种程度上,它可以帮助我处理条形码阅读器的扫描。

我需要的部分工作是捕获绑定到TextProperty的值何时更改的方法。

注意:我不是在寻找“TextChanged”事件或任何与按键相关的事件(除非按键更新源时)。

以下是一个例子:

我需要一个事件(在MyCustomTextBox中),只有在基础值(CustomerId)发生变化时才会触发。

注意:每次按键发生时,实际的TextProperty都会更改。但是直到稍后才更新Source(取决于您的UpdateSourceTrigger设置)。 TextProperty变化太频繁,无法完成我想要做的事情。所以附在它上对我没有帮助。

有没有办法附加到TextProperty下的值?

这可能吗?

1 个答案:

答案 0 :(得分:1)

是的,你需要连接2个事件

        <TextBox Name="Fred" Text="{Binding Foo, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True, UpdateSourceTrigger=LostFocus}" TargetUpdated="Fred_TargetUpdated" SourceUpdated="Fred_SourceUpdated">

当文本框以外的内容更改基础属性(以及首次绑定时)时,会触发TargetUpdated事件,例如。 VM中的某些方法说

当您的文本框更新其绑定时,例如失去焦点时,Sourceupdated事件将被触发