使用数据模板选择器时 WPF ComboBox 键索引不起作用
使用数据模板选择器时,我遇到有关 WPF 组合框的问题。
基本上,WPF 组合框有一个标准行为,如果您使用键盘键入某个字符,它会将您直接带到从该字符开始的项目。我不知道此功能的正式名称,暂时将其称为“Key Indexing”。
我现在想创建一个以不同方式显示其项目的组合框。我使用 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;
}
}
除了失去关键索引功能之外,它工作得很好。当我在组合框下拉时键入一个键时,它不会将我带到从我键入的字符开始的项目。
谁能帮我解决这个问题吗?
问候。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试 IsTextSearchEnabled (http://khason.net/blog/autocomplete -textbox-in-wpf-well-almost/)
Try the IsTextSearchEnabled (http://khason.net/blog/autocomplete-textbox-in-wpf-well-almost/)
尝试
,其中“prop”应该是您要检查与按键是否匹配的属性的路径。编辑:当然,您可以直接在 ComboBox 标记内使用它,而不是作为单独的标记。
Try
<TextSearch.TextPath="prop" />
where 'prop' should be the path to the property you want to examine for matches against the keypresses.Edit: of course, you can use it directly inside the ComboBox tag and not as a separate one.