У меня проблема с комбинированным списком 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;
}
}
Он отлично работает, за исключением того, что возможность индексации ключей потеряна.Когда я нажимаю клавишу, когда выпадающий список выпадает из списка, я не могу перейти к элементу, который начинается с введенного мной символа.
Может ли кто-нибудь помочь мне с этим?
С уважением.