2012-02-05 116 views
1

我會谷歌這個,但我不知道如何用它來做一個搜索。我的問題非常簡單:我正在移植使用Access編寫的應用程序,並且其中一個表單是組合框。當您打開下拉菜單時,它會顯示兩列信息:左側爲縮寫,右側爲全名。當您選擇一個時,組合框中選定的選項(下拉框關閉)僅顯示縮寫。任何想法如何在WPF中實現這一點?如何讓組合框下拉列表顯示兩列,但選擇只顯示一列?

+1

[不同的模板在組合框的下拉列表中的項目和所選項目]的可能重複(HTTP://計算器.com/questions/8279107/different-template-for-items-in-comboboxs-drop-down-list-and-for-selected-item) – 2012-02-05 23:31:07

+0

啊,謝謝! – cost 2012-02-05 23:35:46

+0

@ H.B。實際上,你是否知道在代碼中執行此操作的方法,而不是xaml? – cost 2012-02-05 23:40:41

回答

4

下面是在XAML中執行此操作的另一種方法。重要的部分是TextSearch.TextPath。這將搜索具有指定名稱的對象。在這種情況下,它是一個名爲「Foo」的字符串。

<ComboBox Name="cmbBox" ItemsSource="{Binding Test}" Height="25" IsEditable="True" IsReadOnly="True" TextSearch.TextPath="Foo"> 
     <ComboBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal" TextSearch.Text="{Binding Path=Bar}"> 
        <TextBlock Text="{Binding Path=Foo}"/> 
        <TextBlock Text="{Binding Path=Bar}" Margin="10 0"/> 
       </StackPanel> 
      </DataTemplate> 
     </ComboBox.ItemTemplate> 
    </ComboBox> 

要設置文本搜索編程所有你需要做的是:

cmbBox.SetValue(TextSearch.TextPathProperty, "Foo"); 
相關問題