2011-08-20 55 views
6

我想监听所有定义的子绑定的Binding.SourceUpdated。如何监听根元素的所有子元素的Binding.SourceUpdated?

http://msdn.microsoft.com/en-us/library/system.windows.data.binding.sourceupdated.aspx

设置NotifyOnTargetUpdated或NotifyOnSourceUpdated财产(或两者)为true的结合。您提供的侦听此事件的处理函数必须直接附加到您想要通知更改的元素或整个数据上下文,如果您想知道上下文中的任何内容已更改。

这意味着,我们应该能够听每DataContext的,而不是每个绑定元素的事件。

回答

8

和大多数WPF活动一样,SourceUpdatedRouted Event。当某个子元素引发此事件时,也会调用放置在给定元素上的此事件的任何事件处理程序。

如果你有下面的代码:

<StackPanel Binding.SourceUpdated="OnBindingSourceUpdated"> 
    <TextBlock Text="{Binding Path=A, NotifyOnSourceUpdated=True}" /> 
    <TextBlock Text="{Binding Path=B, NotifyOnSourceUpdated=True}" /> 
</StackPanel> 

处理程序OnBindingSourceUpdated将处理两个文本框绑定源的变化。将附加的事件处理程序放在最初定义数据上下文的元素上,您将得到每个源更改的通知。

相关问题