SampleSmart 1.0.0.0
SampleSmart 사용 방법을 보여 주는 예제 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
PageSub.xaml.ViewModel.cs
이 파일의 문서화 페이지로 가기
1using Dreamine.MVVM.Attributes;
2using Dreamine.MVVM.Interfaces.Windows;
3using Dreamine.MVVM.ViewModels;
5
7{
16 public partial class PageSubViewModel : ViewModelBase
17 {
26 private readonly IWindowStateService _windowStateService;
27
36 [DreamineModel]
38
47 [DreamineEvent]
49
58 [DreamineProperty]
59 private string _message = string.Empty;
60
69 [DreamineProperty]
70 private bool _isWindowSubOpen;
71
88 public PageSubViewModel(IWindowStateService windowStateService)
89 {
90 _model = null!;
91 _event = null!;
92
93 _windowStateService = windowStateService;
94
95 Message = Model.Message;
96
97 IsWindowSubOpen = _windowStateService.IsOpen(ViewKeys.WindowSub);
98 ApplyWindowSubMessage(IsWindowSubOpen);
99
100 _windowStateService.StateChanged += OnWindowStateChanged;
101 }
102
111 [DreamineCommand("Event.Ok")]
112 private partial void Ok();
113
122 [DreamineCommand("Event.Cancel")]
123 private partial void Cancel();
124
149 private void OnWindowStateChanged(object? sender, WindowStateChangedEventArgs e)
150 {
151 if (e.WindowKey != ViewKeys.WindowSub)
152 {
153 return;
154 }
155
156 IsWindowSubOpen = e.IsOpen;
157 ApplyWindowSubMessage(e.IsOpen);
158 }
159
176 private void ApplyWindowSubMessage(bool isOpen)
177 {
178 Message = isOpen
179 ? "WindowSub 창이 열려 있습니다."
180 : "WindowSub 창이 닫혔습니다.";
181 }
182 }
183}
void OnWindowStateChanged(object? sender, WindowStateChangedEventArgs e)
PageSubViewModel(IWindowStateService windowStateService)