using ivf_tl_Operate.Converts;
using ivf_tl_Operate.ViewModel;
using ivf_tl_Operate.Windows;
using System.Windows;
using System.Windows.Controls;
namespace ivf_tl_Operate.View
{
///
/// M5-02-4:统一配置页交互逻辑。
/// PasswordBox 不支持绑定,故 VM↔密码框在加载/保存时手工同步;其余 TextBox 直接读写控件。
/// 保存经 ViewModel.SaveAll → AppConfigHelper(凭据加密)。既有设置页入口零改动。
///
public partial class UnifiedConfigView : UserControl
{
private readonly UnifiedConfigViewModel _vm;
public UnifiedConfigView()
{
InitializeComponent();
_vm = new UnifiedConfigViewModel();
this.DataContext = _vm;
LoadToControls();
}
/// 把 VM 当前值填入各控件(含 PasswordBox)。
private void LoadToControls()
{
_urlIp.Text = _vm.UrlIp;
_urlPort.Text = _vm.UrlPort;
_mqttIp.Text = _vm.MqttIp;
_mqttPort.Text = _vm.MqttPort;
_kfkaIP.Text = _vm.KfkaIP;
_kfkaPort.Text = _vm.KfkaPort;
_cacheDisk.Text = _vm.CacheDisk;
_tlNum.Text = _vm.TlNum;
_language.Text = _vm.Language;
_houseEnabled.Text = _vm.HouseEnabled;
_userName.Text = _vm.UserName;
_passWord.Password = _vm.PassWord;
_engineerPwd.Password = _vm.EngineerPwd;
}
/// 把各控件值回写 VM。
private void CollectFromControls()
{
_vm.UrlIp = _urlIp.Text;
_vm.UrlPort = _urlPort.Text;
_vm.MqttIp = _mqttIp.Text;
_vm.MqttPort = _mqttPort.Text;
_vm.KfkaIP = _kfkaIP.Text;
_vm.KfkaPort = _kfkaPort.Text;
_vm.CacheDisk = _cacheDisk.Text;
_vm.TlNum = _tlNum.Text;
_vm.Language = _language.Text;
_vm.HouseEnabled = _houseEnabled.Text;
_vm.UserName = _userName.Text;
_vm.PassWord = _passWord.Password;
_vm.EngineerPwd = _engineerPwd.Password;
}
private void Save_Click(object sender, RoutedEventArgs e)
{
CollectFromControls();
_vm.SaveAll();
new MessagePrompt().ShowCenterOwnerSuccess(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0232"));
}
private void Return_Click(object sender, RoutedEventArgs e)
{
AppData.Instance.BackMainPage();
}
}
}