WPF – własny konwerter.

Czym jest konwerter

WPF - własny konwerter.Budując aplikacje na bazie WPFu, mamy do dyspozycji wiele ciekawych możliwości ominięcia pisania tak zwanego kodu „code-behind„. W celu wiązania danych z widokiem wykorzystujemy Bindowanie (łączenie właściwości kontrolek z przypisanym do widoku kontekstem danych DataContext).

Niemniej jednak zdarza się, iż wyświetlanie danych w takiej postaci jest nie wystarczające np. chcemy przy pomocy zmiennej bool ustawić widoczność kontrolki która przyjmuje właściwości typu Visibility (Collapsed, Hidden, Visible). W takiej sytuacji z pomocą przychodzi nam konwerter, dzięki któremu możemy dokonać transformacji: bool -> Visibility.

 

Implementacja

Konwerter posiada dwie składowe metody jakie implementuje z interfejsu IValueConverter:

  • Convert – jest używana w przypadku konwersji z typu źródłowego na docelowy, może przyjmować parametry. Właśnie w tej metodzie dokonujemy transformacji bool na VIsibility. Wartość zwracana jest w miejscu użycia w kontrolce.
  • ConvertBack – alternatywna operacja, jeżeli chcemy wykonać wsteczną konwersję z typu VIsibility na bool, działa bardzo podobnie jedynie jest inna transformacja danych.

 

Użycie

W celu użycia konwertera należy go załadować do zasobów okna (linie 1 – 5).

Kolejna pozycja to użycie konwertera (linia 6), poprzez bindowanie.

Parametry użycia:

  • Path – określa źródło danych w DataContext, na te wartości typu bool będzie reagował konwerter BoolToVisibilityConverter,
  • Mode – typ wiązania, TwoWay, oznacza wiązanie w dwie strony, cczyli zapis i odczyt właściwości,
  • Converter – definicja konwertera, należy określić iż pochodzi ze statycznych zasobów, jego nazwę,
  • ConverterParameter – w razie potrzeby można przekazać parametry do konwertera.

 

Tak przygotowany konwerter można wielokrotnie wykorzystywać w aplikacjach.

 

Jest to post przygotowany na potrzeby konkursu „Daj Się Poznać 2017” organizowanym przez Macieja Aniserowicza.