2012-01-25 80 views
0

我試圖在Loaded事件中調用GetBindingExpression方法,但它總是返回nullGetBindingExpression在Loaded事件中返回null

這是預期的行爲,還是我做錯了什麼?如果預計,在什麼事件後綁定表達式可用?

我剛剛創建自定義控制

public partial class LookUp : ComboBox 

public static readonly DependencyProperty LookUpItemsSourceProperty = 
          DependencyProperty.Register("LookUpItemsSource" 
          , typeof(IEnumerable) 
          , typeof(LookUp) 
          , new PropertyMetadata(OnItemsSourcePropertyChanged)); 


public IEnumerable LookUpItemsSource 
     { 
      get 
      { 
       return this.GetValue(LookUpItemsSourceProperty) as IEnumerable; 
      } 
      set 
      { 
       this.SetValue(LookUpItemsSourceProperty, value); 
      } 
     } 

而在XAML中使用這個控制

<Controls:LookUp Name="cb1" LookUpItemsSource="{x:Static Helper:DataManager.CycleLookUpData}" 

現在我想綁定表達式時控制初始化的方法返回NULL:

cb1.GetBindingExpression(LookUp.LookUpItemsSourceProperty) 
+1

如果您不向我們展示您的代碼(XAML和相應的代碼背後),我們不能提供幫助。 – Nuffin

+0

請提供源代碼 –

+1

人,人!從不要求「源代碼」。始終要求提供涵蓋該問題的***最低數量的代碼***。在這種情況下,我們需要查看帶有希望檢索的綁定(不是整個窗口!)和Loaded事件處理程序的控件的xaml。 – Will

回答

1

x:static將設置鍵的值,它不是綁定表達式。你將不得不使用,

{Binding CycleLookUpData, source={x:static Helper:DataManager}} 
1

如果你不使用{Binding ...在XAML不能使用GetBindingExpression()方法。在你的情況下,你設置的價值,而不是綁定。您需要改用cb1.GetValue(LookUp.LookUpItemsSourceProperty)