Introduction to MVVM
  • How to Ask Questions
  • Join .NET Community of Students
  • Introduction
  • Applications Maintaining
  • Why MVVM?
  • MVVM in a Nutshell
  • Services in MVVM
  • Educational Application Overview
  • Problems of Monolithic Design
  • Downsides of MVVM
  • Conclusion
Connecting Views and ViewModels
  • Outline
  • Naming Conventions
  • Preparing the Solution
  • View-First VS ViewModel-First
  • View-First Intro
  • Straightforward View-First Implementation
  • View-First via ViewModel-Locator. AutoWiring.
  • Dependency Injection and Inversion of Control
  • Bootstrapper and IoC. Intro
  • Bootstrapper and IoC. Demo
  • Design-Time Data. Intro
  • Design-Time Data. Demo: Separate ViewModels and Mixing In.
  • Design-Time Data. Demo: Avoiding Duplication.
  • View-First via ViewModel-Locator. Locator as a Container.
  • ViewModel-First. Intro
  • ViewModel-First. Demo
  • Conclusion
Communicating Views and ViewModels
  • Outline
  • Commands in WPF and MVVM
  • RelayCommand. Intro
  • RelayCommand. Demo
  • Behaviors. Intro
  • Attached Behaviors
  • Blend Behaviors
  • MessageBus. Intro
  • MessageBus. Demo
  • Conclusion
Navigation and Other Services
  • Outline
  • Locating MVVM Components
  • UI-Composition
  • Navigation without Parameters
  • Navigation with Parameters
  • Homework: Navigation without MessageBus
  • Dialogs. Intro
  • Dialogs API Demo
  • Applying Dialogs API
  • Making INotifyPropertyChanged Less Painful
  • Conclusion
Models and Validation
  • Outline
  • Models Wrapping
  • Stateful ViewModel VS Stateless ViewModel
  • Validation. Intro
  • Validation. Demo 1.
  • Validation. Demo 2.
  • Homework: Apply Validation for managing the state of UI
  • Conclusion
MVVM Frameworks
  • Outline
  • MVVM Frameworks
  • Prism and MVVM-Light
  • Caliburn.Micro. Intro
  • Caliburn.Micro. Demo
  • Conclusion
Wrap Up
  • Final Words
  • Test 1
  • Test 2
Appendix A. Unit Testing.
  • Unit Tests for ViewModels
Appendix B: Implementing a Real-World Application
  • Outline
  • "True or False" Game
  • Constructing MainWindow.xaml
  • Implementing Logic of MainWindow
  • Constructing GameWindow.xaml
  • Implementing Logic of GameWindow
  • Problems of Monolithic Design
  • Preparing MVVM-based Application
  • Bootstrapping with Caliburn.Micro and Castle.Windsor
  • Bringing Models and Services
  • Implementing the Remaining Part
Appendix C1: Dependency Inversion Principle.
  • Outline
  • DIP Definition
  • Dependencies
  • Volatile and Stable Dependencies
  • Definitions of IoC and DI
  • DIP Violation Demo
  • Refactoring to a Better Design Applying DI
  • DI Techniques
  • Architectural Implications
  • Common Smells of DIP Violation
  • Conclusion
Appendix C2: Introduction to DI-Containers (IoC-Containers)