我有一个像这样的文本框:
<TextBox x:Name="txtCondition" Text="{Binding Path=Name ,Mode=TwoWay}"/>
当我在此文本框中选择文本并将其拖到某处时,会自动调用此文本框中的绑定属性的setter,但我不明白为什么:(。
是否有可能以某种方式将其关闭,在这种情况下wpf不会调用setter属性?
提前感谢您的帮助!
此致 佐利
编辑:
我们必须在这里做一些黑客攻击:)。
我们在viewModel中创建一个bool变量。在previewDrop事件中将bool变量设置为true,并在调用setter时检查此bool变量值。如果是,则在setter中不执行任何操作,并将bool变量设置为false。
其他方式,您可以检查堆栈跟踪以找出调用此setter的位置:)
但是我很好奇为什么当我们从中删除一个项目时,wpf会调用源代码中的binded属性的setter,所以如果有人知道这个原因请告诉我们:)。
答案 0 :(得分:0)
TextBoxes的默认绑定行为是在焦点丢失时进行更新,因此当您向前拖动时会触发此操作。您可以将绑定的UpdateSourceTrigger
更改为Explicit
以避免自动更新,但当然您需要在某个时间手动触发更新。