SampleCrossUi.Maui 1.0.0.0
SampleCrossUi.Maui 사용 방법을 보여 주는 예제 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
LightBulbPage.xaml.cs
이 파일의 문서화 페이지로 가기
1using System.ComponentModel;
2using SampleCrossUi.Shared.ViewModels;
3
5
14public partial class LightBulbPage : ContentView
15{
24 private readonly LightBulbViewModel _viewModel;
33 private bool _refreshing;
34
51 public LightBulbPage(LightBulbViewModel viewModel)
52 {
53 InitializeComponent();
54 _viewModel = viewModel;
55 _viewModel.PropertyChanged += OnViewModelPropertyChanged;
56 Refresh();
57 }
58
83 private void OnToggleClicked(object? sender, EventArgs e)
84 {
85 _viewModel.ToggleCommand.Execute(null);
86 }
87
112 private void OnPowerChanged(object? sender, CheckedChangedEventArgs e)
113 {
114 if (_refreshing || _viewModel.IsOn == e.Value) return;
115 _viewModel.ToggleCommand.Execute(null);
116 }
117
142 private void OnViewModelPropertyChanged(object? sender, PropertyChangedEventArgs e)
143 {
144 MainThread.BeginInvokeOnMainThread(Refresh);
145 }
146
155 private void Refresh()
156 {
157 _refreshing = true;
158 PowerCheckBox.IsChecked = _viewModel.IsOn;
159 Bulb.IsOn = _viewModel.IsOn;
160 StatusLabel.Text = _viewModel.StatusText;
161 CountLabel.Text = $"Toggled {_viewModel.ToggleCount}x";
162 StatusLabel.TextColor = _viewModel.IsOn ? Color.FromArgb("#B7791F") : Color.FromArgb("#64748B");
163 _refreshing = false;
164 }
165}
void OnToggleClicked(object? sender, EventArgs e)
void OnViewModelPropertyChanged(object? sender, PropertyChangedEventArgs e)
void OnPowerChanged(object? sender, CheckedChangedEventArgs e)
LightBulbPage(LightBulbViewModel viewModel)
readonly LightBulbViewModel _viewModel