2011-07-21 69 views
2

正如this question提到的,至少有两个方面的,我可以通知绑定到依赖属性的值发生了变化:在我自己的PropertyChangedCallback派生类我如何知道依赖项属性的绑定已更改?

  1. DependencyPropertyDescriptor.AddValueChanged
  2. DependencyProperty.OverrideMetadata

这一切都工作正常,但我需要只有当属性上设置实际绑定不是每次值更改时通知。有没有办法为这个或我需要听的事件注册回调?

我在MSDN上看过类DependencyProperty,DependencyObject,BindingOperationsDependencyPropertyDescriptor

回答

0

我不认为这是一个“官方途径”要做到这一点,虽然我前几天有同样的问题,并有相当愚蠢的,但至少有效的解决方法

private bool isSet = false; 

public static readonly DependencyProperty DummyProperty = 
      DependencyProperty.Register("DummySource", 
             typeof(DummyType), 
             typeof(WhateverYouWant), 
             new PropertyMetadata((s, a) => 
             { 
              if (!isSet) 
              { 
              //Blah blah about what you wanna do 

              isSet = true 
              } 
             })); 

正常工作上来对我来说,应该为你做的伎俩:)

+0

我做了类似的事情,但我希望能有更好的解决方案。我会把这个问题留出几天,希望有人知道如何做到这一点。如果没有人出现,我会接受你的答案。谢谢。 –