using AnQing.Commons; using AnQing.Model; using AnQing.Models; using RGD.DBUtility; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Configuration; using System.Data; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows.Input; using System.Xml; namespace AnQing.ViewModel { public class SetUpViewModel: INotifyPropertyChanged { private string _videoIP1 =Common.GetSetting("VideoIP1"); public string VideoIP1 { get => _videoIP1; set { if (_videoIP1 != value) { _videoIP1 = value; OnPropertyChanged(nameof(VideoIP1)); } } } private string _videoIP2 = GetSetting("VideoIP2"); public string VideoIP2 { get => _videoIP2; set { if (_videoIP2 != value) { _videoIP2 = value; OnPropertyChanged(nameof(VideoIP2)); } } } private string _imagePath = GetSetting("ImagePath"); private ObservableCollection _dgScanMain = new ObservableCollection(); public ObservableCollection DgScanMain { get => _dgScanMain; set { if (_dgScanMain != value) { _dgScanMain = value; OnPropertyChanged(); } } } private IMAGEINFO _selectedItem; public IMAGEINFO SelectedItem { get { return _selectedItem; } set { _selectedItem = value; OnPropertyChanged(nameof(SelectedItem)); } } public SetUpViewModel() { LoadScanMain(); } private void LoadScanMain() { Task.Run(() => { DataView dv = DbHelperSQL.Query("select * from IMAGEINFO").Tables[0].DefaultView; DgScanMain = Common.ConvertDataViewToObservableCollection(dv); //DgScanMain.Add(new IMAGEINFO() { x = 0, y = 0, width = 0, height = 0, index = 0 }); }); } public string ImagePath { get => _imagePath; set { if (_imagePath != value) { _imagePath = value; OnPropertyChanged(nameof(ImagePath)); } } } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } private ICommand buttonQuitCommand; public ICommand ButtonQuitCommand => buttonQuitCommand ??= new RelayCommand(ButtonSave); /// /// 退出页面 /// private void ButtonSave() { try { SetSetting("VideoIP1", VideoIP1); SetSetting("VideoIP2", VideoIP2); SetSetting("ImagePath", ImagePath); App.Restart(); } catch (Exception ex) { // 处理异常 } } public static void SetSetting(string key, string value) { string configFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(configFile); XmlNode appSettingsNode = xmlDoc.SelectSingleNode("//appSettings"); if (appSettingsNode != null) { XmlNode settingNode = appSettingsNode.SelectSingleNode($"add[@key='{key}']"); if (settingNode != null) { settingNode.Attributes["value"].Value = value; } else { XmlElement newSetting = xmlDoc.CreateElement("add"); newSetting.SetAttribute("key", key); newSetting.SetAttribute("value", value); appSettingsNode.AppendChild(newSetting); } xmlDoc.Save(configFile); } } public static string GetSetting(string key) { return ConfigurationManager.AppSettings[key]; } } }