Привязка к определенному 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}}">
Другие вопросы по тегам