Привязка к определенному AncestorType, пропуская производные типы
Я использую DevExpress LayoutGroup
, который строит несколько детей, на которых я не имею никакого влияния. LayoutGroup
имеет IsCollapsible
свойство, которое при значении true добавляет кнопку к заголовку группы и функциональность свертывания / расширения содержимого группы.
Построенное визуальное дерево выглядит так:
[LayoutControl]
CollapsibleNavigationGroup [LayoutGroup]
[GroupBox]
[Container]
BorderElement [Border]
[LayoutControl]
TitleElement [Container]
TitleContent [LayoutControl]
Обычно это работает только при нажатии самой кнопки, но я расширил функциональность до щелчка по заголовку. Теперь, если GroupBox
Я хочу, чтобы при наведении курсора на верхний колонтитул курсор изменялся на руку, поэтому я сделал это в своем шаблоне:
<dxlc:LayoutControl x:Name="TitleContent"
Cursor="{Binding IsCollapsible, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type dxlc:LayoutGroup}}, Converter={StaticResource BoolToCursorConverter}}">
Тем не мение, LayoutControl
происходит от LayoutGroup
и, следовательно, FindAncestor на самом деле не находит мою группу CollapsibleNavigationGroup, а является прародителем элемента, безымянным LayoutControl
, Теперь мне интересно, есть ли способ указать относительной привязке источника на самом деле искать этот точный тип и игнорировать любые производные типы?
1 ответ
Теперь мне интересно, есть ли способ указать относительной привязке источника на самом деле искать этот точный тип и игнорировать любые производные типы?
Нет, нет Но вы можете установить AncestorLevel
собственность на 2
пропустить первого предка типа, указанного AncestorType
свойство, например:
<dxlc:LayoutControl ... Cursor="{Binding IsCollapsible, RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type dxlc:LayoutGroup},
AncestorLevel=2}, Converter={StaticResource BoolToCursorConverter}}">