我在写一个能够接受PropertyPath的MarkupExtension。我希望能够订阅给定属性PropertyPath的“更改”事件(DependencyProperty或通过INotifyPropertyChanged更新的事件)而不是实际上调用了源属性。在自定义MarkupExtension中订阅绑定类的事件
我的代码目前看起来像这样:
public override object ProvideValue(IServiceProvider serviceProvider)
{
var binding = new Binding();
binding.Path = Path;
...
return false;
}
但我不知道如何继续获得来自绑定对象更改通知。如果我将绑定连接到任何DependencyProperty,它将自动调用源属性getter,这正是我想要避免的。
看来,我可以以某种方式使用Binding.SourceUpdatedEvent,但是,因为它是一个附加的路由事件,我不知道如何从MarkupExtension订阅它。
谢谢!
我不认为他的意思是使用XAML – 2011-12-26 12:26:39
他可以很容易地在代码中设置绑定。关键是使用'Mode = OneWayToSource' – 2011-12-26 12:33:38
即使您的解决方案无法解析PropertyPath以订阅更改。 – 2011-12-26 12:35:17