2013-12-19 2 views
0

В моем проекте у меня есть Usercontrol, который содержит два дочерних элемента управления: текстовое поле и кнопка. Общий стиль был написан в App.xaml для текстового поля. Таким образом, этот стиль будет применяться для этого текстового поля usercontrol и в текстовом поле tat, когда я попытался получить TemplatedParent, это было null. Как получить Usercontrol из текстового поля, так что свойства в Usercontrol можно получить в стиле текстового поля.TemplatedParent не был установлен для дочернего элемента UserControl

ответ

0

TemplatedParent может использоваться в пределах ControlTemplate.

Для стиля вам нужно использовать RelativeSource с множеством режимов для FindAncestor и AncestorType набора для UserControl.

Предположим, что вы хотите установить Text в Name of UserControl от TextBox Style, вы можете сделать так:

<Style TargetType="TextBox"> 
    <Setter Property="Text" 
      Value="{Binding Path=Name, 
          RelativeSource={RelativeSource Mode=FindAncestor, 
                AncestorType=UserControl}}"/> 
</Style> 
+0

ваш код будет прекрасно работает по умолчанию свойства UserControl, но в то время как идти на мой пользовательский UserControl, он не работает. '' – Sankarann

+0

Нет, это тоже сработает. Опубликовать соответствующий код. Он будет работать в случае, если 'UserControl' находится в родительском дереве Visual TextBox. –

+0

В соответствии с визуальным деревом он будет работать, но его не работает .. вот в чем проблема. – Sankarann

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