2010-09-21 60 views
0

当使用数据模板选择器时,WPF组合框有问题。使用数据模板选择器时WPF组合框键索引不工作

基本上,WPF组合框具有标准行为,如果使用键盘键入该字符,它将直接将您带到从字符开始的项目。我不知道这个功能的官方名称,会暂时称它为“Key Indexing”。

我现在想创建一个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; 
    } 
} 

它工作正常,除了那个关键索引能力丧失。当组合框下拉时键入一个键时,它不会将我带到从我键入的字符开始的项目。

任何人都可以帮助我吗?

问候。

回答

0

尝试<TextSearch.TextPath="prop" />其中“托”应该是路径要检查针对的按键匹配的属性。

编辑:当然,你可以直接在ComboBox标签中使用它,而不是作为一个单独的。