2009-05-28 50 views
6

Większość pól listy pozwala znaleźć przedmioty w nich zawarte, wpisując pierwsze litery wyświetlanego tekstu. Jeśli wpisane litery pasują do wielu elementów, możesz dodawać litery, aby zawęzić wyszukiwanie.Jak znaleźć element w polu listy funkcji WPF, pisząc?

Potrzebuję zrobić to w WPF ListBox. Jednak elementy nie są zwykłymi ciągami znaków - są to obiekty niestandardowe, które prezentuję przy użyciu DataTemplate. Mam nadzieję, że istnieje sposób, w jaki mogę podać ścieżkę do wartości ciągu, która powinna być używana do nawigacji tekstowej na klawiaturze elementów ListBox.

Jak to jest możliwe?

Odpowiedz

17

Możesz spróbować ustawić wartość IsTextSearchEnabled na wartość true i użyć załączonej właściwości TextSearch.TextPath.

np.

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

Dziękuję bardzo. To działało idealnie. Aby być czystym, wartość TextPath powinna być ścieżką (pierwsza część wygląda jak nazwa typu, ale w tym przypadku element ma właściwość o nazwie "CustomObject", a ten obiekt ma właściwość o nazwie "StringProperty".) –

+0

Prawda jest domyślny, więc zależy od ciebie, czy chcesz, aby wyglądał bardziej gadatliwie, czy nie. –

+0

Działa ładnie. Czy TextPath może być powiązany z więcej niż jedną właściwością? – Igor