Zdarzenia, a komendy we wzorcu MVVM

Jeżeli zaczynasz swoją przygodę ze wzorcem MVVM to tak samo, jak ja prędzej czy później napotkasz na problem z obsługą zdarzeń. Teoretycznie powinny zastąpić nam je tzw. komendy. Jednak nie wszystkie kontrolki je obsługują(np. ComboBox) i nie dla wszystkich zdarzeń można je „ot, tak” wywołać. Jak zatem sobie z tym poradzić? Oczywiście trzeba powiązać dane zdarzenie z komendą 😉

Czytaj dalej

626 total views, 1 views today

WPF i aplikacje wielojęzyczne

Chyba każdy zgodzi się z tym, że ogromna część oprogramowania przeznaczona jest do użytku przez osoby z różnych części świata – a co za tym idzie posługującymi się różnymi językami. Oczywiście istnieją również aplikacje przeznaczone na „rynek lokalny”, jednak to raczej nisza. Jak zatem w łatwy i przyjemny sposób sprawić, aby nasza aplikacja obsługiwała wiele języków jednocześnie? Sposobów znajdzie się wiele, jednak na szczęście w przypadku .NET’a ta sprawa jest naprawdę prosta 😉

Czytaj dalej

469 total views, no views today

Aplikacja WPF i ikona w systemowym tray’u

Windows tray’a na pewno każdy zna. Jest to ten obszar paska zadań, w którym widoczne są ikony programów działających w tle. Klikając na nie, możemy łatwo wyświetlić okno danego programu. Nic nie stoi na przeszkodzie, aby klikając na tę samą ikonkę PPM zmienić podstawowe ustawienia programu bez wyświetlania jego okna. Niektóre aplikacje wyświetlają też od czasu do czasu powiadomienia w postaci dymków. Całkiem fajna rzecz. Jak w takim razie się do niej dobrać przy pomocy C#?

Czytaj dalej

1,500 total views, 18 views today

Zamykanie okien we wzorcu MVVM

Wzorzec MVVM, co prawda wiele rzeczy ułatwia i porządkuje. Jednak potrafi sprawić też masę problemów. Pisząc swoją pierwszą aplikację, z użyciem tego wzorca natknąłem się na sporą ich ilość. Jednym z nich było przechwytywanie zdarzenia zamykania głównego okna aplikacji, w celu zapisania wprowadzonych zmian. Drugim problemem było zamknięcie innego okna – potomnego, które miało wyświetlać się na czas ładowania pliku, a później znikać. W przypadku code-behind zadania te są banalnie proste. Mamy zdarzenie zamykania okna, mamy też metodę this.Close(). Nic więcej nie jest nam potrzebne. Jednak co w przypadku wzorca MVVM?

Czytaj dalej

843 total views, no views today

Wzorzec Model-View-ViewModel

Dzisiaj będzie trochę o wzorcach projektowych. Mianowicie o MVVM, który zaleca się stosować w przypadku projektów opartych na WPF. Przyznam się szczerze, że zanim zrozumiałem zasadę działania tego wzorca i jego implementację minęło trochę czasu… Jednak po kilku podejściach w końcu się udało i mogę śmiało pisać w MVVM ;). Zaznaczam jednak, że pisanie kodu zgodnie z tym wzorcem, czasami może nie być łatwe i niektóre problemy mogą prosić się o rozwiązanie ich standardowo w code-behind. Ja na przykład siedziałem cały dzień nad tym jak z poziomu kodu zamknąć okno w aplikacji… Do tej pory uczę się tego wzorca, więc na pewno znajdzie się masa rzeczy, które mogę robić źle, lub o których nie wiem. Przejdźmy jednak do rzeczy.

Czytaj dalej

2,223 total views, 10 views today