SampleCrossUi.Maui 1.0.0.0
SampleCrossUi.Maui 사용 방법을 보여 주는 예제 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
CounterPage.xaml.cs
이 파일의 문서화 페이지로 가기
1using System.Collections.Specialized;
2using System.ComponentModel;
3using SampleCrossUi.Shared.ViewModels;
4
6
15public partial class CounterPage : ContentView
16{
25 private readonly CounterViewModel _viewModel;
26
43 public CounterPage(CounterViewModel viewModel)
44 {
45 InitializeComponent();
46 _viewModel = viewModel;
47 _viewModel.PropertyChanged += OnPropertyChanged;
48 _viewModel.Logs.CollectionChanged += OnLogsChanged;
49 Refresh();
50 }
51
76 private void OnIncrementClicked(object? sender, EventArgs e)
77 => _viewModel.IncrementCommand.Execute(null);
78
103 private void OnResetClicked(object? sender, EventArgs e)
104 => _viewModel.ResetCommand.Execute(null);
105
130 private void OnPropertyChanged(object? sender, PropertyChangedEventArgs e)
131 => MainThread.BeginInvokeOnMainThread(Refresh);
132
157 private void OnLogsChanged(object? sender, NotifyCollectionChangedEventArgs e)
158 => MainThread.BeginInvokeOnMainThread(RefreshLogs);
159
168 private void Refresh()
169 {
170 CountLabel.Text = $"Count: {_viewModel.Count}";
171 RefreshLogs();
172 }
173
182 private void RefreshLogs()
183 {
184 LogList.ItemsSource = _viewModel.Logs
185 .Select(l => $"[{l.CreatedAt:HH:mm:ss}] {l.Message}")
186 .ToList();
187 }
188}
CounterPage(CounterViewModel viewModel)
void OnIncrementClicked(object? sender, EventArgs e)
readonly CounterViewModel _viewModel
void OnResetClicked(object? sender, EventArgs e)
void OnLogsChanged(object? sender, NotifyCollectionChangedEventArgs e)
void OnPropertyChanged(object? sender, PropertyChangedEventArgs e)