48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Text;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using WinWARP.Core.Services;
|
|
|
|
namespace WinWARP.Core.ViewModels;
|
|
|
|
public partial class SettingsViewModel : ObservableObject
|
|
{
|
|
private readonly ILocalizationService _localizationService;
|
|
private readonly INavigationService _navigationService;
|
|
|
|
public SettingsViewModel(ILocalizationService localizationService, INavigationService navigationService)
|
|
{
|
|
_navigationService = navigationService;
|
|
_localizationService = localizationService;
|
|
SelectedLanguage = _localizationService.GetCurrentLanguage();
|
|
Languages = new ObservableCollection<string>(_localizationService.GetSupportedLanguages());
|
|
}
|
|
|
|
|
|
[RelayCommand]
|
|
private void Navigate(object? tagParameter)
|
|
{
|
|
if (tagParameter is Type viewModelType)
|
|
{
|
|
var method = _navigationService.GetType().GetMethod("NavigateTo")?.MakeGenericMethod(viewModelType);
|
|
method?.Invoke(_navigationService, [null]);
|
|
}
|
|
}
|
|
|
|
[ObservableProperty]
|
|
public partial string SelectedLanguage
|
|
{
|
|
get; set;
|
|
}
|
|
|
|
partial void OnSelectedLanguageChanged(string value)
|
|
{
|
|
_localizationService.SetLanguageAsync(value);
|
|
}
|
|
|
|
public ObservableCollection<string> Languages;
|
|
}
|