2011-07-21 98 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

我做了類似的事情,但我希望能有更好的解決方案。我會把這個問題留出幾天,希望有人知道如何做到這一點。如果沒有人出現,我會接受你的答案。謝謝。 –