2009-05-28 7 views
6

In den meisten Listenfeldern können Sie Elemente in ihnen finden, indem Sie die ersten Buchstaben des angezeigten Textes eingeben. Wenn die eingegebenen Buchstaben mehreren Elementen entsprechen, können Sie weitere Buchstaben hinzufügen, um die Suche einzuschränken.Wie kann ich ein Element in einer WPF-ListBox finden, indem Sie?

Ich muss dies in einem WPF ListBox tun. Die Elemente sind jedoch keine einfachen Zeichenfolgen - sie sind benutzerdefinierte Objekte, die ich unter Verwendung einer DataTemplate präsentiere. Ich hoffe, dass es eine Möglichkeit gibt, einen Pfad zu dem Zeichenfolgenwert anzugeben, der für diese Texttastaturnavigation der ListBox Elemente verwendet werden soll.

Wie ist das möglich?

Antwort

17

Sie könnten versuchen, IsTextSearchEnabled auf True und die TextSearch.TextPath angefügten Eigenschaft zu setzen.

z.B.

<ListBox IsTextSearchEnabled="True" 
     TextSearch.TextPath="CustomObject.StringProperty"/> 
+1

Vielen Dank. Das hat perfekt funktioniert. Nur um klar zu sein, der TextPath-Wert sollte ein Pfad sein (der erste Teil sieht wie ein Typname aus, aber in diesem Fall hat das Element eine Eigenschaft namens 'CustomObject' und dieses Objekt hat eine Eigenschaft 'StringProperty'.) –

+0

True is der Standard so ist es bis zu Ihnen, ob Sie wollen, dass es ausführlicher oder nicht aussehen –

+0

Funktioniert gut. Kann der TextPath an mehr als eine Eigenschaft gebunden werden? – Igor