Старший предок в TreeView в качестве параметра команды - PullRequest
0 голосов
/ 23 марта 2012

У меня есть иерархическое древовидное представление в WPF. Я использую http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/ для привязки событий с моделью представления.

Когда я дважды щелкаю элемент в виде дерева, я всегда хочу передать корневой тип в качестве параметра команды.

Пример:
A
..B
.... C
D
..E

Когда я нажимаю «A», «B» или «C», я хочу «A» в качестве параметра команды. Когда я нажимаю «D» или «E», я хочу «D» в качестве параметра команды.

Это то, что я имею до сих пор, это всегда отправляет элемент, выбранный в качестве параметра команды:

    <Setter Property="acb:CommandBehavior.Event" Value="MouseDoubleClick"/>
    <Setter Property="acb:CommandBehavior.Command" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.SomeCommand}"/>
    <Setter Property="acb:CommandBehavior.CommandParameter" Value="{Binding}"/>

Полагаю, мне нужно связать с RelativeSource, я не могу понять ...

С уважением,

Michel

1 Ответ

1 голос
/ 23 марта 2012

Насколько мне известно, вы не можете создать привязку, которая эквивалентна требуемому выражению, возможно, вам лучше передать текущий элемент в качестве параметра и найти корневой узел в коде команды.

...