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;
}
}
}