Migrate
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using AppClientBase.Services;
|
||||
|
||||
namespace AppClientBase.ViewModels;
|
||||
|
||||
/// <summary>
|
||||
/// EN: Main page ViewModel.
|
||||
/// VI: ViewModel của trang chính.
|
||||
/// </summary>
|
||||
public partial class MainViewModel : BaseViewModel
|
||||
{
|
||||
private readonly ISettingsService _settingsService;
|
||||
|
||||
/// <summary>
|
||||
/// EN: Welcome message displayed on the main page.
|
||||
/// VI: Thông điệp chào mừng hiển thị trên trang chính.
|
||||
/// </summary>
|
||||
[ObservableProperty]
|
||||
private string _welcomeMessage = "Welcome to AppClientBase!";
|
||||
|
||||
/// <summary>
|
||||
/// EN: Click counter for demonstration.
|
||||
/// VI: Bộ đếm click để minh họa.
|
||||
/// </summary>
|
||||
[ObservableProperty]
|
||||
private int _clickCount;
|
||||
|
||||
/// <summary>
|
||||
/// EN: Button text that updates with click count.
|
||||
/// VI: Text nút cập nhật theo số lần click.
|
||||
/// </summary>
|
||||
[ObservableProperty]
|
||||
private string _buttonText = "Click me";
|
||||
|
||||
/// <summary>
|
||||
/// EN: Constructor with required services.
|
||||
/// VI: Constructor với các services cần thiết.
|
||||
/// </summary>
|
||||
public MainViewModel(
|
||||
INavigationService navigationService,
|
||||
ISettingsService settingsService)
|
||||
: base(navigationService)
|
||||
{
|
||||
_settingsService = settingsService;
|
||||
Title = "Home";
|
||||
|
||||
// Defer loading settings to avoid startup crash
|
||||
// ClickCount will be loaded on first interaction
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// EN: Increment click counter command.
|
||||
/// VI: Command tăng bộ đếm click.
|
||||
/// </summary>
|
||||
[RelayCommand]
|
||||
private void IncrementCounter()
|
||||
{
|
||||
ClickCount++;
|
||||
try
|
||||
{
|
||||
_settingsService.Set("ClickCount", ClickCount);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Ignore settings errors
|
||||
}
|
||||
UpdateButtonText();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// EN: Update button text based on click count.
|
||||
/// VI: Cập nhật text nút dựa trên số lần click.
|
||||
/// </summary>
|
||||
private void UpdateButtonText()
|
||||
{
|
||||
ButtonText = ClickCount switch
|
||||
{
|
||||
0 => "Click me",
|
||||
1 => "Clicked 1 time",
|
||||
_ => $"Clicked {ClickCount} times"
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user