MVVM_i_XAML_w_Visual_Studio_2015_xamlmv.pdf

(885 KB) Pobierz
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym
powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi
ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte
w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności
ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub
autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności
za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Opieka redakcyjna: Ewelina Burska
Projekt okładki: Studio Gravite/Olsztyn
Obarek, Pokoński, Pazdrijowski, Zaprucki
Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/xamlmv
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/xamlmv.zip
ISBN: 978-83-283-1018-6
Copyright © Helion 2016
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
Część I
Wzorzec MVVM. Podstawy XAML .................................... 7
Wzorzec widoku autonomicznego .................................................................................... 9
Tworzenie projektu ......................................................................................................... 10
Projektowanie interfejsu ................................................................................................. 11
Kilka uwag na temat kodu XAML opisującego interfejs okna ....................................... 15
Zdarzenia ........................................................................................................................ 16
Własności ....................................................................................................................... 20
Zapisywanie i odtwarzanie stanu aplikacji ..................................................................... 21
Rozdział 1. Szybkie wprowadzenie do XAML ....................................................... 9
Rozdział 2. Wzorzec MVVM .............................................................................. 25
Model ............................................................................................................................. 25
Widok ............................................................................................................................. 26
Model widoku ................................................................................................................. 27
Rozdział 3. Implementacja modelu i model widoku ............................................ 29
Model ............................................................................................................................. 29
Warstwa dostępu do danych ........................................................................................... 30
Model widoku ................................................................................................................. 31
Alternatywne rozwiązania .............................................................................................. 33
Ratujemy widok ............................................................................................................. 35
Zadania ........................................................................................................................... 36
Rozdział 4. Wiązanie danych (data binding) ...................................................... 37
Instancja modelu widoku i kontekst danych ................................................................... 37
Alternatywne rozwiązanie .............................................................................................. 38
Wiązanie pozycji suwaków i koloru prostokąta ............................................................. 39
Zmiany w code-behind ................................................................................................... 40
Implementacja interfejsu INotifyPropertyChanged ........................................................ 41
Powiadomienia w alternatywnych modelach widoku ..................................................... 44
Interfejs INotifyDataErrorInfo ........................................................................................ 50
Klasa ObservedObject .................................................................................................... 50
Rozdział 5. Konwersja danych w wiązaniu ......................................................... 53
Prosta konwersja typów .................................................................................................. 53
Konwersja klas Color i SolidColorBrush ....................................................................... 55
Multibinding ................................................................................................................... 56
Kup książkę
Poleć książkę
4
MVVM i XAML w Visual Studio 2015
Wiązanie między kontrolkami ........................................................................................ 57
Konwersje „wbudowane” ............................................................................................... 60
Zadania ........................................................................................................................... 60
Rozdział 6. Polecenia (commands) ................................................................... 61
Interfejs ICommand ........................................................................................................ 61
Przycisk uruchamiający polecenie .................................................................................. 62
Sprawdzanie możliwości wykonania polecenia .............................................................. 65
Resetowanie stanu suwaków po naciśnięciu klawisza .................................................... 66
Klasa RelayCommand .................................................................................................... 67
Zdarzenia a polecenia ..................................................................................................... 69
Zamykanie okna ............................................................................................................. 71
Zadanie ........................................................................................................................... 72
Rozdział 7. Zachowania, własności zależności i własności doczepione ............... 73
Zachowania (behaviors) ................................................................................................. 73
Własność zależności (dependency property) .................................................................. 75
Własność doczepiona (attached property) i zachowanie doczepione
(attached behavior) ....................................................................................................... 79
Zadania ........................................................................................................................... 81
Rozdział 8. Testy jednostkowe ......................................................................... 83
Testy jednostkowe w Visual Studio 2013 ....................................................................... 84
Projekt testów jednostkowych .................................................................................. 84
Przygotowania do tworzenia testów ......................................................................... 85
Pierwszy test jednostkowy ....................................................................................... 85
Testy jednostkowe w Visual Studio 2015 ....................................................................... 86
Uruchamianie testów ...................................................................................................... 88
Testy wielokrotne ........................................................................................................... 89
Dostęp do prywatnych pól testowanej klasy ................................................................... 90
Atrapy obiektów (mock objects) ..................................................................................... 92
Testowanie konwersji ..................................................................................................... 95
Testowanie wyjątków ..................................................................................................... 96
Rozdział 9. Powtórzenie ................................................................................... 99
Model ............................................................................................................................. 99
Prototyp widoku ........................................................................................................... 100
Model widoku ............................................................................................................... 102
Wiązanie ....................................................................................................................... 103
Konwerter ..................................................................................................................... 104
Wzorzec MVVM .......................................................................................................... 106
Zadania ......................................................................................................................... 107
Część II
Zaawansowane zagadnienia budowania interfejsu
w XAML ..................................................................... 109
Konfiguracja przycisku w podoknie Properties ............................................................ 111
Pędzle ........................................................................................................................... 115
Formatowanie tekstu na przycisku ............................................................................... 118
StackPanel — liniowe ułożenie elementów .................................................................. 119
Projektowanie własnych kontrolek ............................................................................... 121
Rozdział 10. Budowanie złożonych kontrolek .................................................... 111
Kup książkę
Poleć książkę
Spis treści
5
Rozdział 11. Style ............................................................................................ 123
Siatka i wiele kontrolek ................................................................................................ 123
Zasoby okna ................................................................................................................. 125
Style .............................................................................................................................. 127
Wyzwalacze .................................................................................................................. 129
Zasoby aplikacji ............................................................................................................ 130
Rozdział 12. Transformacje i animacje .............................................................. 133
Transformacje kompozycji i renderowania ................................................................... 133
Uruchamianie transformacji w wyzwalaczu stylu ........................................................ 140
Animacje ...................................................................................................................... 142
Animacja w stylu .......................................................................................................... 144
Funkcje w animacji ....................................................................................................... 145
Animacja koloru ........................................................................................................... 147
Rozdział 13. Szablony kontrolek ....................................................................... 149
Rozdział 14. Zdarzenia trasowane (routed events) ............................................ 153
Pojedyncza kontrolka ................................................................................................... 153
Zagnieżdżanie przycisków ............................................................................................ 155
Kontrola przepływu zdarzeń trasowanych .................................................................... 156
Przerwanie kolejki ........................................................................................................ 158
Bulgotanie (bubbling) i tunelowanie (tunneling) .......................................................... 158
Dynamiczne tworzenie przycisków zagnieżdżonych .................................................... 160
Rozdział 15. Kolekcje w MVVM i XAML ............................................................ 163
Model ........................................................................................................................... 163
Przechowywanie danych w pliku XML ........................................................................ 167
Model widoku zadania .................................................................................................. 169
Kolekcja w modelu widoku .......................................................................................... 172
Prezentacja kolekcji w widoku. Szablon danych (data template) ................................. 175
Style elementów kontrolki ListBox .............................................................................. 177
Konwertery ................................................................................................................... 179
Zapisywanie danych przy zamknięciu okna ................................................................. 182
Modyfikacje kolekcji .................................................................................................... 184
Sortowanie .................................................................................................................... 190
Zadania ......................................................................................................................... 192
Rozdział 16. Okna dialogowe w MVVM ............................................................. 193
Klasa bazowa okna dialogowego .................................................................................. 194
Polecenia wykonywane przed wyświetleniem i po wyświetleniu okna dialogowego ...... 196
Okno dialogowe MessageBox ...................................................................................... 199
Warunkowe wyświetlenie okna dialogowego ............................................................... 203
Okna dialogowe wyboru pliku ...................................................................................... 205
Łańcuch
okien dialogowych ......................................................................................... 209
Okna dialogowe z dowolną zawartością ....................................................................... 210
Zadania ......................................................................................................................... 214
Rozdział 17. Grafika kształtów w XAML ............................................................ 215
Model widoku ............................................................................................................... 216
Widok ........................................................................................................................... 217
Zmiana kształtu okna .................................................................................................... 222
Zadania ......................................................................................................................... 226
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin