2011-08-03 7 views
6

Używam kodu (VS2008), który znalazłem pod artykułem "Automatic WPF Toolkit DataGrid Filtering", który działa bardzo dobrze. Jest on zaimplementowany jako nowy "styl" nagłówka datagridu, a NIE jako rozszerzenie samego datagridu. Moje pytanie brzmi: jak mogę zapisać wprowadzone wartości w tych polach filtru, a później użyć ich do ponownego wprowadzenia tych wartości?Jak zapisać wartości filtrów w zestawie narzędziowym WPF "rozszerzenie filtru"?

Jeśli nie jest to możliwe, jak to zrobić, zmień kod źródłowy (dostępny z powyższego linku) na filtr (nowicjusz WPF).

Dzięki,

Enrico

Odpowiedz

0

Można zapisać je do UserSettings. Chciałbym utworzyć wpis użytkownika dla każdego wpisu filtru i podczas ładowania wypełnij filtr.

2

Nie masz zbyt wiele czasu, aby pójść w głąb analizy kodu, ale można znaleźć w kodzie przewidzianym:

W Generic.xaml w line 55 znajdziesz ten kod:

<Setter Property="Template"> 

Ten kod faktycznie ustawia szablon dla kolumny GridColumn. W środku , żeXAML znajdziesz deklarację typu DelayTextBox. To jest twój klucz!

Od DelayTextBox rozpoczyna się wyszukiwanie typu OnTextChanged(TextChangedEventArgs e).

Kolejna wskazówka jeszcze:

W DataGridColumnFilter.cs znajdziesz następującą właściwość:

public FilterData FilterCurrentData 
{ 
    get { return (FilterData)GetValue(FilterCurrentDataProperty); } 
    set { SetValue(FilterCurrentDataProperty, value); } 
} 

Put przerwania do get/set, uruchom program i filtrować kolumny. Otrzymasz jasną wizję, która pozwoli Ci określić rzeczywistą wartość pola tekstowego na podstawie projektu Twojej aplikacji.

EDIT

Spójrz na FilterData typu, to, jak sądzę, zawiera potrzebne informacje.

Mam nadzieję, że to pomoże.

Pozdrawiam.

+0

@Jason: dzięki ... – Tigran

+0

Bez problemu. Czasami nie mogę sobie pomóc. –

Powiązane problemy