我正在编写一个能够接受PropertyPath的MarkupExtension。我希望能够订阅"更改"给定属性PropertyPath的事件(DependencyProperty或通过INotifyPropertyChanged更新的事件)没有实际调用source属性。
我的代码目前如此:
public override object ProvideValue(IServiceProvider serviceProvider)
{
var binding = new Binding();
binding.Path = Path;
...
return false;
}
但我不确定如何继续从绑定对象获取通知更改。如果我将绑定连接到任何DependencyProperty,它将自动调用source属性getter,这是我试图避免的。
似乎我可以某种方式使用Binding.SourceUpdatedEvent,但是,因为它是一个附加的路由事件,我不知道如何从MarkupExtension订阅它。
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
如果Binding和DependancyProperty是您的解决方案,并且您担心不调用getter,则可以将绑定模式指定为OneWayToSource.
{Binding Mode=OneWayToSource}
或代码
binding.Mode = BindingMode.OneWayToSource;