逻辑规则和CAN结合的更改

This commit is contained in:
2025-04-23 20:57:54 +08:00
parent a7fc676b82
commit 0aee140e3f
10 changed files with 194 additions and 166 deletions

View File

@@ -48,7 +48,7 @@ namespace CapMachine.Wpf.ViewModels
set { _ListLogicRuleDto = value; RaisePropertyChanged(); }
}
private LogicRuleDto _selectedRule;
private LogicRuleDto _selectedRule=new LogicRuleDto();
/// <summary>
/// 当前选中的规则
/// </summary>
@@ -58,6 +58,11 @@ namespace CapMachine.Wpf.ViewModels
set { _selectedRule = value; RaisePropertyChanged(); }
}
/// <summary>
/// 选中更改之前的LogicRuleDto
/// </summary>
public LogicRuleDto SelectedRuleOld { get; set; }
private DelegateCommand<object> _GridSelectionChangedCmd;
/// <summary>
/// 选中行数据命令
@@ -82,6 +87,8 @@ namespace CapMachine.Wpf.ViewModels
var selectedItem = par as LogicRuleDto;
if (selectedItem != null)
{
//防止需要未更改之前的数据
SelectedRuleOld = selectedItem;
//先判断是否是正确的集合数据防止DataGrid的数据源刷新导致的触发事件
SelectedRule = selectedItem.DeepClone();
}
@@ -90,6 +97,10 @@ namespace CapMachine.Wpf.ViewModels
}
/// <summary>
/// 是否编辑
/// </summary>
private bool IsRuleEdit { get; set; } = false;
private DelegateCommand<string> _RuleCmd;
/// <summary>
@@ -112,11 +123,8 @@ namespace CapMachine.Wpf.ViewModels
}
private void RuleCmdMethod(string par)
{
if (SelectedRule==null)
{
MessageBox.Show("选中后再操作数据");
return;
}
IsRuleEdit = true;
//先判断是否是正确的集合数据防止DataGrid的数据源刷新导致的触发事件
switch (par)
{
@@ -125,9 +133,19 @@ namespace CapMachine.Wpf.ViewModels
LogicRuleService.AddRule(Mapper.Map<LogicRule>(SelectedRule));
break;
case "Update":
LogicRuleService.UpdateRule(Mapper.Map<LogicRule>(SelectedRule));
if (SelectedRule == null)
{
MessageBox.Show("选中后再操作数据");
return;
}
LogicRuleService.UpdateRule(Mapper.Map<LogicRule>(SelectedRuleOld),Mapper.Map<LogicRule>(SelectedRule));
break;
case "Delete":
if (SelectedRule == null)
{
MessageBox.Show("选中后再操作数据");
return;
}
LogicRuleService.DeleteRule(SelectedRule.Name);
break;
default:
@@ -181,7 +199,7 @@ namespace CapMachine.Wpf.ViewModels
{
DialogParameters pars = new DialogParameters
{
{ "NewData", "" }
{ "IsRuleEdit", IsRuleEdit }
};
RaiseRequestClose(new DialogResult(ButtonResult.OK, pars));
@@ -224,6 +242,7 @@ namespace CapMachine.Wpf.ViewModels
public override void OnDialogOpened(IDialogParameters parameters)
{
Name = parameters.GetValue<string>("Name");
IsRuleEdit = false;
}