/ / Custom Sort Comparer <T> Silverlight Datagrid - silverlight, xaml, sortowanie, datagrid

Niestandardowy sortownik sortowania <T> Silverlight Datagrid - silverlight, xaml, sortowanie, datagrid

Mam tam siatkę danych Silverlight Toolkitkolumna pokazuje tekstową reprezentację wartości liczbowej. Chciałbym posortować według wartości liczbowej kolumny, ale przedstawić użytkownikowi dane tekstowe. Wartości w kolumnie siatki mają format taki jak:

  • Kategoria A (200–300)
  • Jakaś kategoria (100-200)
  • Jeszcze inna kategoria (300–400)

Ponieważ te wartości są tekstowe, siatka poprawnie sortuje tekst, jednak mam niestandardowy moduł porównujący, który może już sortować je według kategorii liczbowych i chciałby podłączyć je do siatki.

Obiekt danych, z którym wiąże się komórka siatki, ma jedynie reprezentację tekstową (i nie ma możliwości łatwego dodania wartości liczbowej). Dlatego SortMemberPath = nie będzie działać w tym przypadku.

Czy można wstrzyknąć niestandardowy moduł porównujący dlapojedyncza kolumna siatki i sortować według tego? A może zaimplementować CollectionViewSource za pomocą niestandardowego modułu porównującego? Pamiętaj, że to jest Silverlight, a nie WPF, więc brakuje niektórych pól / właściwości / klas w porównaniu z WPF.

Odpowiedzi:

1 dla odpowiedzi № 1

Najprostszym sposobem na osiągnięcie tego jest dodaniedwie właściwości do encji, którą wiążesz z siatką, jedna to tekst, a druga może być liczbowa i wiązać tylko jedną z kolumną siatki, a drugą można użyć w SortMemberPath. Jeśli nie są to dwie właściwości, które chcesz zachować w encji, możesz zachować tylko wartość liczbową i użyć konwertera, aby przekonwertować ją na tekst, a SortMemberPath = NumericPropertyName.