using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
using HMI.Base;
using HMI.MenuManage.Entity;
using HMI.MenuManage.Model;
using HMI.UI.Util;
using log4net;
namespace HMI.MenuManage
{
///
/// UserControl1.xaml 的交互逻辑
///
public partial class MenuManage : PluginControl
{
#region ...
public virtual event PropertyChangedEventHandler PropertyChanged;
protected virtual void RaisePropertyChanged(string name)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
protected void RaiseAndSetIfChanged(ref T old, T @new, [CallerMemberName] string propertyName = null)
{
old = @new;
if (propertyName != null)
{
RaisePropertyChanged(propertyName);
}
}
#endregion
#region 属性
private MenuManageModel Model;
private ILog log;
#endregion
public MenuManage()
{
Model = new MenuManageModel();
this.DataContext = Model;
InitializeComponent();
}
#region 属性
#endregion
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
var btn = ((Button)sender);
if (btn.Name == "addBtn")
{
try
{
MenuModal window = new MenuModal
{
Title = "新增菜单",
sqliteHelper = Model.sqliteHelper,
Owner = Window.GetWindow(this)
};
if (true == window.Open(new MenuData()))
{
MenuData data = window.Data;
Model.LoadData();
}
}
catch (Exception ex)
{
log.Error("Add Menu Failed.", ex);
}
}
else if (btn.Name == "refreshBtn")
{
try
{
Model.LoadData();
}
catch (Exception ex)
{
log.Error("Refresh Menu List Failed.", ex);
}
}
else if (btn.Name == "deleteBtn") { }
else if (btn.Name == "editBtn")
{
try
{
var data = (MenuData)btn.DataContext;
MenuModal window = new MenuModal
{
Title = "编辑菜单",
sqliteHelper = Model.sqliteHelper,
Owner = Window.GetWindow(this)
};
if (true == window.Open(data))
{
var newData = window.Data;
Model.LoadData();
}
}
catch (Exception ex)
{
log.Error("Edit Menu Failed.", ex);
}
}
else if (btn.Name == "delBtn")
{
try
{
var data = (MenuData)((Button)sender).DataContext;
var res = MsgBoxHelper.WarnMessage(Window.GetWindow(this), $"确定删除[{data.Name}]吗?该操作不可逆!");
if (res == MessageBoxResult.OK)
{
Model.DeleteMenuById(data.Id);
Model.LoadData();
}
}
catch (Exception ex)
{
log.Error("Delete Menu Failed.", ex);
}
}
}
private void DataGrid_Loaded(object sender, RoutedEventArgs e)
{
Model.LoadData();
Loaded -= DataGrid_Loaded;
}
private void treeViewer_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs