using PdmSwPlugin.Common; using PdmSwPlugin.Common.Interface; using PdmSwPlugin.Common.Setting; using PdmSwPlugin.Common.Util; using SolidWorks.Interop.sldworks; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Forms; namespace PdmSwPlugin.UserSetting { /// /// UserControl1.xaml 的交互逻辑 /// [PdmSwPlugin(Title = "用户设置")] public partial class UserSettingControl : System.Windows.Controls.UserControl, INotifyPropertyChanged, ISwAppSetter { #region ... public virtual event PropertyChangedEventHandler PropertyChanged; public virtual void RaisePropertyChanged(string name) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } public void RaiseAndSetIfChanged(ref T old, T @new, [CallerMemberName] string propertyName = null) { old = @new; if (propertyName != null) { RaisePropertyChanged(propertyName); } } #endregion private YwtUserSetting _userSettingModel; public YwtUserSetting userSettingModel { get => _userSettingModel; set => RaiseAndSetIfChanged(ref _userSettingModel, value); } private SldWorks swApp; public SldWorks SwApp => swApp; public UserSettingControl() { userSettingModel = YwtUserSetting.Instance; DataContext = userSettingModel; InitializeComponent(); } private void Refresh_Click(object sender, RoutedEventArgs e) { userSettingModel = YwtUserSetting.Load(true); } private void Save_Click(object sender, RoutedEventArgs e) { if (userSettingModel.SaveToXml(out string ErrMsg)) { this.Info("保存成功"); } else { this.Error(ErrMsg); } } private void ChooseDir_Click(object sender, RoutedEventArgs e) { FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); var res = folderBrowserDialog.ShowDialog(); if (res == DialogResult.OK) { userSettingModel.SwFilePath = folderBrowserDialog.SelectedPath; } } public void SetSwApp(SldWorks SwApp) { this.swApp = SwApp; } } }