0

Loaded イベントで GetBindingExpression メソッドを呼び出そうとしていますが、常に返されます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)
4

2 に答える 2

1

{Binding ...XAML で使用しない場合は、GetBindingExpression()メソッドを使用できません。あなたの場合、バインディングの代わりに値を設定します。cb1.GetValue(LookUp.LookUpItemsSourceProperty)代わりに使用する必要があります。

于 2016-01-04T12:40:55.283 に答える
1

x:static はキーの値を設定しますが、バインディング式ではありません。あなたは使用する必要があります、

{Binding CycleLookUpData, source={x:static Helper:DataManager}}
于 2012-01-28T07:53:30.003 に答える