Индекс ключа WPF ComboBox не работает при использовании селектора шаблона данных - PullRequest
0 голосов
/ 21 сентября 2010

У меня проблема с комбинированным списком WPF при использовании селектора шаблонов данных.

По сути, комбинированный список WPF имеет стандартное поведение, которое приведет вас непосредственно к элементу, который начинается с символа, если вы вводите этот символ с клавиатуры,Я не знаю официального названия этой функции и временно назову ее «Индексирование ключей».

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

    <ComboBox SelectedItem="{Binding Selection}" x:Name="Input" ItemsSource="{Binding Parties}">
        <ComboBox.ItemTemplateSelector>
            <Editor:PartyTemplateSelector DefaultTemplate="{StaticResource Default}" NewTemplate="{StaticResource New}" OldTemplate="{StaticResource Old}"/>
        </ComboBox.ItemTemplateSelector>
    </ComboBox>

И PartyTemplateSelector:

public class PartyTemplateSelector : DataTemplateSelector
{
    public DataTemplate DefaultTemplate
    {
        get; set;
    }

    public DataTemplate NewTemplate
    {
        get; set;
    }

    public DataTemplate OldTemplate
    {
        get; set;
    }

    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        var party = (Party) item;
        if (party is OldDisplay)
        {
            return OldTemplate;                
        }

        if(counterparty.NewLook)
        {
            return NewTemplate;
        }
        return DefaultTemplate;
    }
}

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

Может ли кто-нибудь помочь мне с этим?

С уважением.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2010

Попробуйте <TextSearch.TextPath="prop" />, где 'prop' - это путь к свойству, которое вы хотите проверить на совпадения с нажатиями клавиш.

Редактировать: конечно, вы можете использовать его непосредственно внутри тега ComboBox, а не как отдельный.

0 голосов
/ 21 сентября 2010

Попробуйте IsTextSearchEnabled (http://khason.net/blog/autocomplete-textbox-in-wpf-well-almost/)

...