2010-02-24 10 views
0

pousserCompositeCollection casse ComboBox AutoComplete-Feature?

Bonjour à tous!

J'utilise un WPF ComboBox avec IsTextSearchEnabled="True" (saisie semi-automatique) et que vous souhaitez lier sa propriété ItemsSource à un CompositeCollection. Malheureusement, le Combobox ne semble pas reconnaître les éléments fournis par un CollectionContainer dans CompositeCollection. Ils sont affichés, mais pas sélectionnés par saisie semi-automatique.

Veuillez essayer l'exemple, tapez "def". Si "def" n'est pas sélectionné, vous avez reproduit le problème auquel je suis confronté. Y a-t-il une solution, quelque chose que j'ai supervisé ou un moyen pratique de contourner le problème tout en ayant une capacité de collecte fusionnée?

<Window x:Class="MainWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="MainWindow" Height="350" Width="525"> 
<Window.Resources> 
    <XmlDataProvider x:Key="XData1" XPath="/Info"> 
     <x:XData> 
      <Info xmlns=""> 
       <Item>def</Item> 
       <Item>efg</Item> 
      </Info> 
     </x:XData> 
    </XmlDataProvider> 

    <CollectionViewSource x:Key='Data1' Source="{Binding Source={StaticResource XData1}, XPath=Item}" /> 

</Window.Resources> 
<Grid> 
    <ComboBox IsEditable="True" IsTextSearchEnabled="True" Margin="0,0,0,283"> 
     <ComboBox.ItemsSource> 
      <CompositeCollection> 
       <ComboBoxItem>abc</ComboBoxItem> 
       <ComboBoxItem>bcd</ComboBoxItem> 
       <ComboBoxItem>cde</ComboBoxItem> 
       <CollectionContainer Collection="{Binding Source={StaticResource Data1}}" /> 
      </CompositeCollection> 

     </ComboBox.ItemsSource> 
    </ComboBox> 
</Grid> 

Merci! - dartrax

+0

J'ai juste essayé le AutoCompleteBox livré avec la boîte à outils WPF Février 2010 Sortie, il a la même question. – dartrax

Répondre

1

J'ai découvert que cela est résolu dès que vous remplacez la fonction ToString() de votre objet Items, afin qu'il retourne ce que les éléments DataTemplate montrent.

Un exemple de travail complet est ici: --------> X

  • dartrax