2014-11-20 4 views
1

Похоже, что TextSearch только ищет детей выбранного TreeviewItem по умолчанию. Я бы хотел, чтобы он вел себя как проводник Windows, поскольку если ни один ребенок не соответствует, он должен проверить siblings для матчей.WPF TreeView текстовый поиск: siblings?

Например, если я выбираю TreeViewItem с заголовком «B» и введите «C» на клавиатуре, то я хотел бы TreeViewItem с заголовком C должен быть выбран:

<TreeView IsTextSearchEnabled="True"> 
<TreeViewItem IsTextSearchEnabled="True" Header="A"/> 
<TreeViewItem IsTextSearchEnabled="True" Header="B"> 
    <TreeViewItem IsTextSearchEnabled="True" Header="D"/> 
    <TreeViewItem IsTextSearchEnabled="True" Header="E"/> 
    <TreeViewItem IsTextSearchEnabled="True" Header="F"/> 
</TreeViewItem> 
    <TreeViewItem IsTextSearchEnabled="True" Header="C"/> 
</TreeView> 

Любые идеи ?

EDIT: Я хотел бы продолжить использование встроенной функции TextSearch, если это возможно.

+0

Похоже, что это общая проблема , Для справки: http://stackoverflow.com/questions/11530643/treeview-search – gcarvelli

+0

@ killermonkey50 Спасибо за ответ, но ссылка, которую вы опубликовали, относится к пользователю, пытающемуся выполнить выборочный поиск через TreeView в VB, в то время как мой вопрос связан к встроенной функции TextSearch в WPF. Я отредактирую свой вопрос, чтобы указать это напрямую. – MoonBoots89

+0

поведение в древовидной структуре проводника Windows отличается, пользователь может ввести любую букву *** в любое время ***, чтобы переместить выбранный элемент в первый сопоставленный элемент. Хотя для поведения, которое вы хотите (с помощью 'IsTextSearchEnabled'), соответствующий элемент работает только *** один раз ***, после того, как выбранный выбранный элемент выбран, ввод другой буквы не будет соответствовать ни одному элементу. Кстати, изменение поведения какого-либо встроенного свойства, похожего на это, кажется невозможным, просто создайте собственное пользовательское прикрепленное свойство. –

ответ