Проблема с вложенным имуществом - PullRequest
0 голосов
/ 22 июля 2010

У меня есть прикрепленное свойство с именем «Translate».Я устанавливаю свойство следующим образом:

<Label  Target="{Binding ElementName=UserName}" 
        Content="User Name"
        Extensions.Translate="true"/>

Я получаю значение Target в обработчике событий, измененном свойством, и оно равно null.Но я установил это в XAML.Почему это ноль?

Спасибо.

1 Ответ

1 голос
/ 23 июля 2010

Привязка не происходит до тех пор, пока в процессе загрузки пользовательского интерфейса не будет, поэтому в момент применения локального значения «true» привязка еще не оценена.Вам необходимо отложить проверку значения Target до тех пор, пока не будет обновлена ​​привязка.Это должно помочь вам начать работу с обработчиком Translate PropertyChanged:

    Label label = dObj as Label;
    if (BindingOperations.IsDataBound(label, Label.TargetProperty))
    {
        Binding.AddTargetUpdatedHandler(label, (sender, args) =>
        {
            UIElement element = label.Target;
            // do something with element
        });
    }
...