2017-04-25 3 views
2

Also habe ich in diesem Forum gesucht, aber nicht die anwser finden konnte ...WPF ComboBox SelectionItemBox Prompt-String

Ich Bindung meine Combobox auf eine Liste von Benutzern. Aber wenn ich zum Beispiel einen Namen eingeben will, kommt etwas seltsames Zeug heraus.

XAML-Code:

<ComboBox Name="UserLoginCmbBox" Width="100" IsEditable="True" SelectionChanged="UserLoginCmbBox_SelectionChanged"> 
      <ComboBox.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Login}"/> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
</ComboBox> 

-Code Behind-Code:

var users = new List<User>{...} //initialization   
UserLoginCmbBox.ItemsSource = users; 

Wenn ich in der Box bin Eingabe nur Zeichenfolge ich bekommen kann, ist:

System.Data.Entity. DynamicProxies.User_FE59351B6479342209B496E7D3C3B877DDC51FE15279FFFEF899A5012F85FCBA

Ich habe herausgefunden, dass dies ist was ToString() -Methode zurückgibt, aber was ist, wenn ich die gleiche Liste für Expamle in einer anderen ComboBox verwenden möchte, wo ich den Namen oder etwas anderes wählen möchte?

Wie kann ich SelectionItemBox ändern? Ursache Wenn ich versuchte, das SelectionItemBoxTemplate zu verwenden, um meine eigene Vorlage zu schreiben, trat ein Fehler auf (SelectionItemBoxTemplate hat nur Getter).

Antwort

1

Versuchen Sie, stellen Sie die DisplayMemberPath Eigenschaft auf "Login":

<ComboBox Name="UserLoginCmbBox" Width="100" IsEditable="True" SelectionChanged="UserLoginCmbBox_SelectionChanged" DisplayMemberPath="Login" /> 
+0

Fehler: kann nicht beide gesetzt ItemTemplate und DisplayMemerPath – laguss

+0

die ItemTemplate entfernen wie pro meine Probe Markup. Kopieren Sie es einfach wie es ist. – mm8

+0

Es funktioniert :) Viel Liebe <3 und danke: D – laguss