我对字符串依赖属性绑定到TextBox的Text。
绑定看起来像这样:
Text="{Binding MyValue, Mode=TwoWay}"
我有一些代码在OnKeyUp(在附加属性中)触发,设置MyValue
。但是,不是采用我的值并将其应用于Text属性,而是反过来。
以下是事件序列:
在我看来,我的价值并没有以某种方式回到“TextBox.Text”。当我松散焦点时,TextBox正在使用Text属性中的内容更新字符串的值(未更改的值,因为我的更改没有返回。)
是否有一些我不知道的WPF魔法?
注意:我已经仔细检查了我的绑定。 (除了它们在UI上工作,所以我认为它们是正确的用户界面。)
注意II:当我说“用户输入一个字符串”时,它实际上是一个扫描的条形码。但由于我使用的是键盘楔形,因此就好像输入了它一样。(但是,设置值的重点是因为如果用户扫描为打字,我会做一些不同的事情。)
更新:我发现这是由于另一个属性有副作用。我能够解决问题。
答案 0 :(得分:2)
您只是在WPF
绑定消息传递中跳入了可靠性冲突。
为了证明这一点,请执行以下操作:
OnKeyUp
偶数处理程序并做同样的事情。在Enter
点击绑定机制触发并设置您的代码隐藏属性。
如果您在KeyUp上进行制作,则新的值2999会被之后的绑定所压制。
要正确管理,请使用Converter并删除OnKeyDown
甚至订阅。
答案 1 :(得分:1)
您是否尝试过阅读这篇文章? http://msdn.microsoft.com/en-us/library/ms754356.aspx
答案 2 :(得分:0)
我发现这是由于另一个有副作用的财产。我能够通过修复这种副作用来解决问题。