J'ai un problème concernant la liste déroulante WPF lors de l'utilisation du sélecteur de modèle de données. Fondamentalement, WPF combobox a un comportement standard qui vous amènera directement à l'élément qui commence à partir d'un caractère si vous tapez ce caractère en utilisant le clavier. Je ne connais pas le nom officiel de cette fonctionnalité et je l'appellerai temporairement "Key Indexing".L'index de clé WPF ComboBox ne fonctionne pas lorsque vous utilisez le sélecteur de modèle de données
Je veux maintenant créer un ComboBox qui affiche son élément différemment. J'ai réalisé cela en utilisant 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>
Et le PartyTemplateSelector est:
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;
}
}
Il fonctionne très bien en dehors de la clé que la capacité d'indexation est perdue. Lorsque je tape une clé pendant que la liste déroulante est déroulée, cela ne m'amène pas à l'élément qui commence à partir du caractère que j'ai tapé.
Quelqu'un peut-il m'aider avec ceci?
Cordialement.
Salut, Merci pour votre réponse. Cette valeur a sa valeur par défaut true et n'a pas besoin d'être définie explicitement. J'ai essayé mais cela ne résout pas le problème. :(Merci beaucoup de toute façon. – Kevin