修复自动路径起点和终点设置中,可以点击手动创建的bug

This commit is contained in:
tian 2025-09-13 14:47:07 +08:00
parent 89c98f1556
commit e295675fe5
2 changed files with 27 additions and 12 deletions

View File

@ -543,6 +543,7 @@ namespace NavisworksTransport
RaiseStatusChanged("已切换到查看状态", PathPlanningStatusType.Info);
}
/// <summary>
/// 重置路径编辑状态
/// </summary>

View File

@ -393,6 +393,8 @@ namespace NavisworksTransport.UI.WPF.ViewModels
VehicleLength > 0 && VehicleWidth > 0 && VehicleHeight > 0 &&
SafetyMargin >= 0;
public bool CanExecuteNewPath => !IsSelectingStartPoint && !IsSelectingEndPoint;
public bool CanExecuteStartEdit => SelectedPathRoute != null &&
(_pathPlanningManager?.PathEditState == PathEditState.Viewing);
@ -535,7 +537,7 @@ namespace NavisworksTransport.UI.WPF.ViewModels
private void InitializeCommands()
{
NewPathCommand = new RelayCommand(async () => await ExecuteNewPathAsync());
NewPathCommand = new RelayCommand(async () => await ExecuteNewPathAsync(), () => CanExecuteNewPath);
DeletePathCommand = new RelayCommand(async () => await ExecuteDeletePathAsync());
RenamePathCommand = new RelayCommand(async () => await ExecuteRenamePathAsync());
StartEditCommand = new RelayCommand(async () => await ExecuteAddPathPointAsync(), () => CanExecuteStartEdit);
@ -729,9 +731,13 @@ namespace NavisworksTransport.UI.WPF.ViewModels
_hasStartPoint = false;
AutoPathStartPoint = "未选择";
LogManager.Info("PathPlanningManager已初始化开始设置选择状态");
LogManager.Info("PathPlanningManager已初始化开始设置自动路径规划状态");
IsSelectingStartPoint = true;
IsSelectingEndPoint = false;
// 通知按钮状态更新,禁用"手动创建"按钮
OnPropertyChanged(nameof(CanExecuteNewPath));
UpdateMainStatus("请在3D视图中点击选择起点...");
// 进入自动路径规划模式 - 动态事件订阅
@ -783,9 +789,13 @@ namespace NavisworksTransport.UI.WPF.ViewModels
_hasEndPoint = false;
AutoPathEndPoint = "未选择";
LogManager.Info("PathPlanningManager已初始化开始设置选择状态");
LogManager.Info("PathPlanningManager已初始化开始设置自动路径规划状态");
IsSelectingStartPoint = false;
IsSelectingEndPoint = true;
// 通知按钮状态更新,禁用"手动创建"按钮
OnPropertyChanged(nameof(CanExecuteNewPath));
UpdateMainStatus("请在3D视图中点击选择终点...");
// 进入自动路径规划模式 - 动态事件订阅
@ -994,6 +1004,7 @@ namespace NavisworksTransport.UI.WPF.ViewModels
// 通知Can Execute属性更改
OnPropertyChanged(nameof(CanExecuteAutoPlanPath));
OnPropertyChanged(nameof(CanExecuteNewPath));
LogManager.Info("自动路径规划参数和起终点标记已完全重置ToolPlugin已重新初始化");
}, "重置自动路径规划");
@ -1812,6 +1823,7 @@ namespace NavisworksTransport.UI.WPF.ViewModels
// 通知Can Execute属性更改
OnPropertyChanged(nameof(CanExecuteAutoPlanPath));
OnPropertyChanged(nameof(CanExecuteNewPath));
// 渲染新的起点标记
if (PathPointRenderPlugin.Instance != null)
@ -1862,6 +1874,7 @@ namespace NavisworksTransport.UI.WPF.ViewModels
// 通知Can Execute属性更改
OnPropertyChanged(nameof(CanExecuteAutoPlanPath));
OnPropertyChanged(nameof(CanExecuteNewPath));
// 渲染新的终点标记
if (PathPointRenderPlugin.Instance != null)
@ -2303,6 +2316,7 @@ namespace NavisworksTransport.UI.WPF.ViewModels
}
// 通知命令状态更新
OnPropertyChanged(nameof(CanExecuteNewPath));
OnPropertyChanged(nameof(CanExecuteStartEdit));
OnPropertyChanged(nameof(CanExecuteEndEdit));
OnPropertyChanged(nameof(CanExecuteModifyPoint));