2010-09-21 67 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標籤中使用它,而不是作爲一個單獨的。