GetBindingExpression возвращает значение NULL в событии Loaded. - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь вызвать метод GetBindingExpression в событии 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}"

Теперь я хочу получить связывающее выражение, когда элемент управления инициализирует, что метод возвращает нуль:

cb1.GetBindingExpression(LookUp.LookUpItemsSourceProperty)

Ответы [ 2 ]

1 голос
/ 04 января 2016

Если вы не используете {Binding ... в XAML, вы не можете использовать GetBindingExpression() метод.В вашем случае вы устанавливаете значение вместо привязки.Вам нужно использовать cb1.GetValue(LookUp.LookUpItemsSourceProperty).

1 голос
/ 28 января 2012

x: static будет устанавливать значение ключа, это не обязательное выражение.Вам придется использовать,

{Binding CycleLookUpData, source={x:static Helper:DataManager}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...