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;
}
}
}
