如何在.Net 4.0(描述为
here)中实现.Net 4.0中绑定的Delay属性?
我知道我不能继承自BindingBase,因为ProvideValue被密封.
我可以实现MarkupExtension,但这意味着我现在必须从BindingExtension重写所有的属性是否有其他方式?
解决方法
我将创建一个AttachedProperty,指定延迟的时间量.当绑定值更改时,AttachedProperty将启动(或重置)定时器,并在达到指定的时间量时手动更新绑定的源.
您可以使用以下更新源绑定:
BindingOperations.GetBindingExpressionBase( dependencyObject,dependencyProperty).UpdateSource();
编辑
我正在修复一些旧代码中的错误,并注意到它使用附加行为实现了一个延迟的属性更改通知.我想到了这个问题,所以按照我在代码中评论的链接,发现自己在过去的一段时间里已经发布了一个关于delaying a binding左右的问题.最重要的答案是我现在实现的一个问题,在X毫秒之后更新绑定源的属性.