TreeViewItem isSelected запущено дважды - PullRequest
1 голос
/ 04 февраля 2011

У меня есть TreeView с различными предметами. Элементы имеют такой стиль, что свойство IsSelected привязывается к моей виртуальной машине к bool IsSelected.

всякий раз, когда я щелкаю элемент дерева, это свойство VM вызывается дважды, сначала со значением == false, затем со значением == true.

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Причина этого - всплывающие события.

Когда событие вызывается, оно будет «пузыриться» до тех пор, пока не будет обработано.

Вы можете проверить его, выбрав элемент третьего уровня.

Вам просто нужно установить e.Handled = true;

Ofir

2 голосов
/ 25 февраля 2011

Я подозреваю, что причина в том, что при выборе элемента сначала отменяется выбор старого элемента, а затем выбирается новый элемент.Это приводит к первому вызову false и второму значению true.

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

Аналогично, когда вы расширяете узел, нет необходимости в свертывании других узлов.Поэтому он просто расширяет узел, который вы пытались развернуть (передавая true для IsExpanded).

...