Привязать DependencyProperty к свойству в другом классе - PullRequest
1 голос
/ 28 февраля 2012

В моем MainWindow.xaml я добавил свой UserControl в окно.Есть также кнопка, которая переключает вызов логического значения IsVisible из True / False.

В моем файле MainUserControl.xaml у меня есть сетка данных (не сетка MS), где его шаблон указывает на шаблон элемента управления, установленный в приложении..xaml.Это где мое свойство IsVisible существует.

В моем App.xaml у меня есть ControlTemplate, который имеет мою сетку данных.Если я хочу привязать свойство Visible моего столбца к свойству IsVisible в классе MainUserControl.

У меня проблемы с привязкой этого свойства.Я пытался использовать TemplateBinding, но это не может работать, так как TemplatedParent не является UserControl.Я пытался использовать RelativeSource и установить Ancestor, но это тоже не сработало.Кто-нибудь есть совет, чтобы помочь мне?

РЕДАКТИРОВАТЬ: это код в моей ControlTemplate

<Column FieldName="Column1" 
             Title="Column1" 
             Visible="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:UserControl1}, AncestorLevel=2}, Path=IsVisible}"  />

1 Ответ

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

Проблема в том, что вы устанавливаете AncestorLevel=2, попробуйте удалить его, и оно должно работать для вас.

AncestorLevel=2 позволит это сработать, только если вам нужно будет UserControl1 s, один внутри другого, так как он говорит о привязке ко второму экземпляру local:UserControl1, обнаруженному при переходе вверх.

...