IMI docs

Trace: mvvm

Mvvm

This is an old revision of the document!


MVVM Pattern - Реалізація патерна


Лейбли and Binding в XAML (в XAML забіндити можна все що завгодно!)

Foreground="Red"                         Міняє колір вмісту
FontSize="50"                            Величена вмісту
FontFamily="Segoe UI"                    Які шрифти будуть використані
Content="{Binding Time}"                 Бінд який падає в клас StopwatchViewModel  з інтерфейсом  INotifyPropertyChanged
HorizontalContentAlignment="Center"      Вірівнення по ширині
VerticalContentAlignment="Center"        Вірівнення по висоті
<Label Content="{Binding Time}" Foreground="Red" FontFamily="Segoe UI" FontSize="50" VerticalContentAlignment="Center" ></Label>
<Label Margin="{Binding Xyi}"  FontFamily="Segoe UI" FontSize="50" HorizontalContentAlignment="Center"></Label>

xaml.cs (грубо кажучи це просто main метод!)

  • Метод по дефу, потрібен для виклику (НЕ РЕАЛІЗАЦІЇ) реалізовуючих класів
  • DataContext потрібен для того щоб достукатись до МОДЕЛЕЙ класу StopwatchViewModel з інтерфейсом INotifyPropertyChanged (Дефолтна штука, якось працює під капотом)
  • timer реалізовує TimerMonitore який приймає конструктор класу StopwatchViewModel
    • При виклику timer.startstopWatch(); запускає DispatcherTimer і Stopwatch (тому що в конструкторі НЕ ПРИПУСТИМО робити запуск програми)
namespace CounterSalary
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            var context = new StopwatchViewModel();
            var timer = new TimerMonitore(context);
            timer.startstopWatch();
            DataContext = context;
        }
    }
}