2009-11-20 7 views
2

Мне было интересно, какой будет лучший способ переопределить щелчок мышью Tree View? Как вы знаете, когда вы дважды щелкаете родительским деревом, то древовидное представление расширяется и показывает детей. Если у него нет детей, это ничего не значит. , но если он уже расширен, это будет крах.TreeView, преодолевая событие мыши с двойным щелчком WPF

Я хочу взять древовидный вид, а когда вы дважды щелкните по ним, он будет привязан к какой-то команде.

Так в основном, я хотел бы сохранить функциональность родителя, где вы двойной щелчок и она разворачивает или сворачивает, но когда вы дважды щелкните на ребенка, он будет выполнять определенную команду ..

Я используя XAML и C#.

ответ

1

Помните, что пузырь событий в WPF, поэтому вы можете иметь обработчик событий в двойном щелчке, чтобы сделать свою собственную вещь - и пока вы не установите RoutedEventArgs.Handled в true, он будет продолжать пузыриться и должен отключиться поведение по умолчанию.

В частности, просто создать обработчик для MouseDoubleClick на TreeView:

<TreeView MouseDoubleClick="TreeView1_MouseDoubleClick" Width="194" Height="200"> 
... 
</TreeView> 

делать все, что вам нужно сделать внутри обработчика, и двойным щелчком по расширению/функциональности контрактной TreeView не будет воздействие.

+0

Смущенный, что-то делать? Я довольно новый в WPF –

+0

Я отредактировал, чтобы указать немного лучше. –

+0

hmm .. это имеет немного больше смысла, но знаете ли вы, как бы я прошел в параметре commandParameter элемента, который он нажимает? Как если бы вы хотели открыть определенный файл, то, щелкнув treeView, он перейдет в идентификатор файла и откроет его на основе идентификатора. –