2017-11-07 2 views
0

Ich brauche eine Steuerung, die extrem wie Combobox aus Win run Fenster aussieht. Meine Frage ist, ist es ein Standart combobox control mit bestimmten Einstellungen oder ich muss ein custom control erstellen, um dieses Aussehen und Verhalten zu erreichen?Erweiterte Combobox Steuerung

Ich interessiere mich für Aussehen und Verhalten neben dem dritten Bild - wie gefilterte Vorschläge, die als listbox in einem popup nach dem Drücken einer Taste angezeigt.

  1. standart Combobox

1. standart combobox

  1. Combobox geöffnet

2. combobox open

  1. das interessanteste - wie filt Ered Vorschläge

3. the most interresting - like filtered suggestions


AKTUALISIERT!

Ist es ein Standard-Combobox-Steuerelement? Wie Sie in der beigefügten gif unten sehen, wenn ich mit der Eingabe von etwas Combobox wie ein Textfeld mit Popup-Fenster unter es, die gefilterte Elemente enthält aussieht. Wie eine Art Mischung zwischen Textbox, Combobox und Popup-Fenster mit listbox

enter image description here

+0

Mögliche Duplikat von [Autocomplete Combobox für WPF] (https://stackoverflow.com/questions/27963022/autocomplete-combobox-for-wpf) – Sinatr

+1

Das ist nur eine Standard 'ComboBox' mit' Editable = "True" '. Sehen Sie sich [diese SO-Post] (https://stackoverflow.com/a/4200216/2029607) – XAMlMAX

+0

@XAMlMAX so und wann die Textbox mit gefilterten Elementen? – isxaker

Antwort

1

Dies ist bereits in die ComboBox gebaut. Hier ein Beispiel:

<ComboBox 
     IsEditable="True" //This enables to enter values that don't belong to the ItemsSource collection 
     IsTextSearchEnabled="True" //this allows you to have "suggestions" when you enter text 
     IsTextSearchCaseSensitive="False" 
     StaysOpenOnEdit="True" 
     Text="{Binding NameOnViewModel}" 
     TextSearch.TextPath="NameOnChildItems" //this is the property on which combobox will filter the items 
     ItemsSource="{Binding Items}" //collection of your items to search on 
     ItemTemplate="{StaticResource DataTemplate}" />//this can be replaced with DisplayMemeberPath="PropertyName" 

Hinweis:
Dieses Beispiel wurde von this SO post genommen.
EDIT
Falls Sie das Popup öffnen möchten, wenn Sie in den Werten eingeben, dann könnte diese Hilfe sein:

</ComboBox.Style> 
    <Style TargetType="{x:Type ComboBox}"> 
     <Style.Triggers> 
      <Trigger Property="IsKeyboardFocusWithin" Value="True">//you can also use a different event if this one doesn't suit your needs. 
       <Setter Property="IsDropDownOpen" Value="true" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</ComboBox.Style> 

EDIT 2
Zur Filterung der sichtbaren Objekte in der Drop-down-Liste Ihrer Combobox dann verwenden Sie die Taste down-Ereignis und filtern Sie es in der Event-Handler wie folgt: