2015-09-16 3 views
2

У меня есть TreeView как это:Как вызвать Selected событие, когда я выбираю один пункт каждый

XAML:

<TreeView> 
    <TreeViewItem Header="header" Name="mytreeViewItem" Selected="mytreeViewItem_Selected"/> 
</TreeView> 

xaml.cs:

mytreeViewItem.ItemsSource = new List<string>(){"a"}; 

Когда я выбираю TreeViewItem с именем a, это вызовет событие mytreeViewItem_Selected. Но когда я снова выберу TreeViewItem, он больше не вызовет событие. Как я могу вызвать событие Selected, когда я выбираю TreeView каждый раз?

+0

Что именно вы имеете в виду под «[...], когда я снова выбираю« TreeViewItem »[...]». Вы снова нажимаете на него, пока он еще выбран? Вы нажимаете на нее после того, как вы ее отменили? Потому что событие «Selected» будет только срабатывать, если оно просто будет выбрано. – grexter89

ответ

1

Вы можете использовать событие PreviewMouseDown или что-то подобное (PreviewMouseLeftButtonDown например) в соответствии с вашими потребностями.

0

Вы можете иметь

item.IsSelected = false; 

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

+0

есть. Я пытался. Но это не сработало. – Dragon

+0

Извините. Я нашел это: http://stackoverflow.com/questions/5389797/unselecting-and-reselecting-a-treeviewitem-in-a-treeview, что может быть обходным путем для вас, и это: http://stackoverflow.com/вопросы/491111/как к Deselect-все выбранные-элементы-в-МОФ-TreeView-WHEN щелкнув-на-некоторых пусто. – PScr

Смежные вопросы