using CommunityToolkit.Mvvm.Input; using FLY.AppHelper; using Misc; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Windows; using System.Windows.Controls; namespace FLY.Thick.Base.UI.CustomSection { /// /// UcSectionOsk.xaml 的交互逻辑 /// public partial class UcSectionLanguage : UserControl { UcSectionLanguageVm viewModel; public UcSectionLanguage() { InitializeComponent(); } [Unity.InjectionMethod] public void Init(Culture culture) { viewModel = new UcSectionLanguageVm(); viewModel.Init(culture); this.DataContext = viewModel; } } public class UcSectionLanguageVm : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public LanguageInfo CurrentLanguage { get; set; } public ObservableCollection LanguageList { get; } = new ObservableCollection(); public RelayCommand OkCmd { get; private set; } Culture culture; public UcSectionLanguageVm() { OkCmd = new RelayCommand(Ok); } public void Init(Culture culture) { this.culture = culture; foreach (var lang in culture.langs) { LanguageList.Add(Culture.GetLanguageInfo(lang)); } try { CurrentLanguage = LanguageList.First(l => l.Language == culture.Language); } catch { CurrentLanguage = LanguageList[0]; } } private void Ok() { string msg = (string)Application.Current.FindResource("str.PgCustomSections.IsSureToReboot"); if (MessageBox.Show(msg, null, MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No) { return; } if (culture.Language != CurrentLanguage.Language) { culture.Language = CurrentLanguage.Language; culture.Save(); } AppJustOne.Restart(); } } }