2010-07-22 3 views
0

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

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

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

Спасибо.

ответ

1

Связывание происходит не позже, чем в процессе загрузки пользовательского интерфейса, поэтому в точке, где применяется локальное значение «истина», привязка еще не определена. Вам необходимо отложить проверку целевого значения до тех пор, пока обновление Binding не будет обновлено. Это должно помочь вам начать работу с обработчиком 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 
     }); 
    } 
+0

очень хороший ответ, спасибо. – frameworkninja

Смежные вопросы