Jacek Matulewski
Programowanie Windows (WPF) - Zadania do części II

  1. Przygotuj aplikację WPF zgodną ze wzorcem MVVM, w której w oknie widoczne są kontrolki TextBox i TextBlock. Tekst wpisywany w pierwszej kontrolce powinien pojawić się w drugiej kontrolce dzięki wiązaniu z własnością Tekst zdefiniowaną w modelu widoku. Własność ta powinna udostępniać pole o tej samej nazwie zdefiniowane w modelu. Model widoku powinien implementować interfejs INotifyPropertyChanged (sprawdź, czy jest konieczny).
    Do okna dodaj też przycisk z etykietą Czyść, który związany jest z poleceniem Czyść zdefiniowanym w modelu widoku, które usuwa tekst z własności Tekst.
  2. Proszę przygotować aplikację WPF zgodną ze wzorcem MVVM o nazwie Asystent zakupów, której model zawiera: Okno (widok) umożliwia podanie kwoty dzięki polu edycyjnemu typu TextBox. Kwota jest przesyłana dzięki poleceniu związanemu z przyciskiem Button. Bieżąca suma jest wyświetlana w etykiecie TextView. Wykorzystaj konwentery, aby wyświetlić liczby typu decimal w widoku i polecenie, aby dodać kwotę. W code-behind nie może być ani jednej linii kodu.
    Uwaga! Aplikacja została opisana w filmie.
  3. Do projektu Kolory dodaj trzy kontrolki TextBlock umieszczone z prawej strony każdego suwaka, które prezentują wartość poszczególnych składowych RGB koloru wybranego za pomocą suwaków. Wartości te mogą być prezentowane dzięki wiązaniom z własnościami modelu widoku lub dzięki wiązaniu z własnościami Value suwaków. Użyj atrybutu StringFormat, aby zaokrąglić wyświetlane liczby do liczb całkowitych.
  4. Zmodyfikuj projekt Kolory w taki sposób, żeby kontrolkę Rectangle związać bezpośrednio z trzema suwakami, podobnie jak pozostałe kontrolki. Usuń przyciski, a następnie cały model i model widoku. Po ustaleniu odpowiednich wiązań między kontrolkami, aplikacja powinna działać z samym widokiem.
  5. W projekcie Kolory w elemencie Window.InputBindings dodaj element MouseBinding, który z przyciśnięciem środkowego klawisza myszy z przytrzymanym klawiszem Ctrl na klawiaturze zwiąże polecenie Resetuj z modelu widoku.
  6. Dla chętnych. W projekcie Kolory (z dodanymi zachowaniami) w metodzie KlawiszZmieniony zachowania KlawiszWyłączBehavior zmień polecenie if rozpoznające typ obiektu, do którego zachowanie jest doczepione na instrukcję switch wykorzystującą dopasowanie wzorca (ang. pattern matching). Informacje na temat pattern matching w dokumentacji Microsoft.
  7. W projekcie Tekst z zadania I dodaj klasę zachowania dziedziczącego po Behavior<TextBox>, w którym subskrybowane jest zdarzenie TextChanged pola edycyjnego w celu odtwarzania dźwięku po każdym wprowadzeniu litery. Do emisji dźwięku użyj polecenia SystemSounds.Beep.Play();.
  8. Dla chętnych. .NET Standard to nie nowa wersja platformy z rodziny .NET, a standard dla tych platform. Biblioteka .NET Standard może być użyta w aplikacji dla .NET Framework, .NET Core, UWP, Mono i innych. Postaraj się umieścić w bibliotece .NET Standard model i model widoku z aplikacji przeniesionej do UWP, a następnie wykorzystaj ją w projektach KoloryWPF i KoloryUWP. Usuń foldery Model i ModelWidoku w obu projektach, aby mieć pewność, że wykorzystywane są klasy z biblioteki. Problemem będzie z pewnością wykorzystanie klasy Windows.UI.Color w modelu widoku. To klasa należąca do UWP. Kod źródłowy rozwiązania jest w katalogu z kodami źródłowymi. Dodatkowo, spróbuj zmienić widok w aplikacji UWP tak, żeby ułożenie kontrolek było kontrolowanej za pomocą pojemnika RelativePanel.
  9. Dla chętnych. W projekcie Zegar, w zachowaniu PrzesuwanieOkna dodaj zmianę kursora myszy w trakcie przenoszenia okna (na ikonę z ręką).