| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using System.ComponentModel;
- using System.Windows;
- using System.Windows.Controls;
- using LocalizationTool.Services;
- using LocalizationTool.ViewModels;
- namespace LocalizationTool.Views
- {
- /// <summary>翻译设置窗口:绑定 TranslationSettingsViewModel,PasswordBox 的密文输入在此转发。</summary>
- public partial class TranslationSettingsWindow : Window
- {
- public TranslationSettingsViewModel ViewModel { get; }
- public TranslationSettingsWindow(Config.ConfigRoot config)
- {
- InitializeComponent();
- Icon = App.AppIcon;
- ViewModel = new TranslationSettingsViewModel(config);
- DataContext = ViewModel;
- // VM 恢复默认/初始化时刷新 PasswordBox 显示(PasswordBox 无法绑定)
- ViewModel.PropertyChanged += OnViewModelPropertyChanged;
- // 初始掩码回显(构造期间的 PropertyChanged 已错过)
- TxtOpenAIKey.Password = ViewModel.OpenAiKeyInput;
- TxtBaiduSecret.Password = ViewModel.BaiduSecretInput;
- ViewModel.Initialize(LanguageCatalog.Find("en-US") ?? LanguageCatalog.All[0]);
- ViewModel.RequestClose += ok =>
- {
- DialogResult = ok;
- Close();
- };
- }
- private void OnViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
- {
- if (e.PropertyName == nameof(ViewModel.OpenAiKeyInput))
- TxtOpenAIKey.Password = ViewModel.OpenAiKeyInput ?? "";
- else if (e.PropertyName == nameof(ViewModel.BaiduSecretInput))
- TxtBaiduSecret.Password = ViewModel.BaiduSecretInput ?? "";
- }
- /// <summary>PasswordBox 不能直接绑定,把输入值转发给 VM(掩码/空 = 未修改)。</summary>
- private void OpenAiKey_PasswordChanged(object sender, RoutedEventArgs e)
- {
- ViewModel.OpenAiKeyInput = ((PasswordBox)sender).Password ?? "";
- }
- private void BaiduSecret_PasswordChanged(object sender, RoutedEventArgs e)
- {
- ViewModel.BaiduSecretInput = ((PasswordBox)sender).Password ?? "";
- }
- }
- }
|