显示CNC文件名,取消节点的上、下移动
This commit is contained in:
@@ -33,6 +33,7 @@ namespace XplorePlane.ViewModels.Cnc
|
||||
private CncNodeViewModel _selectedNode;
|
||||
private bool _isModified;
|
||||
private string _programName;
|
||||
private string _programDisplayName = "NewCncProgram";
|
||||
private Guid? _preferredSelectedNodeId;
|
||||
|
||||
public CncEditorViewModel(
|
||||
@@ -110,6 +111,12 @@ namespace XplorePlane.ViewModels.Cnc
|
||||
set => SetProperty(ref _programName, value);
|
||||
}
|
||||
|
||||
public string ProgramDisplayName
|
||||
{
|
||||
get => _programDisplayName;
|
||||
private set => SetProperty(ref _programDisplayName, value);
|
||||
}
|
||||
|
||||
public DelegateCommand InsertReferencePointCommand { get; }
|
||||
public DelegateCommand InsertSaveNodeWithImageCommand { get; }
|
||||
public DelegateCommand InsertSaveNodeCommand { get; }
|
||||
@@ -256,6 +263,7 @@ namespace XplorePlane.ViewModels.Cnc
|
||||
return;
|
||||
|
||||
await _cncProgramService.SaveAsync(_currentProgram, dlg.FileName);
|
||||
ProgramDisplayName = Path.GetFileName(dlg.FileName);
|
||||
IsModified = false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -280,6 +288,7 @@ namespace XplorePlane.ViewModels.Cnc
|
||||
|
||||
_currentProgram = await _cncProgramService.LoadAsync(dlg.FileName);
|
||||
ProgramName = _currentProgram.Name;
|
||||
ProgramDisplayName = Path.GetFileName(dlg.FileName);
|
||||
IsModified = false;
|
||||
RefreshNodes();
|
||||
}
|
||||
@@ -294,6 +303,7 @@ namespace XplorePlane.ViewModels.Cnc
|
||||
var name = string.IsNullOrWhiteSpace(ProgramName) ? "NewCncProgram" : ProgramName;
|
||||
_currentProgram = _cncProgramService.CreateProgram(name);
|
||||
ProgramName = _currentProgram.Name;
|
||||
ProgramDisplayName = FormatProgramDisplayName(_currentProgram.Name);
|
||||
IsModified = false;
|
||||
RefreshNodes();
|
||||
}
|
||||
@@ -622,5 +632,11 @@ namespace XplorePlane.ViewModels.Cnc
|
||||
.GetEvent<CncProgramChangedEvent>()
|
||||
.Publish(new CncProgramChangedPayload(ProgramName ?? string.Empty, IsModified));
|
||||
}
|
||||
|
||||
private static string FormatProgramDisplayName(string programName)
|
||||
{
|
||||
var name = string.IsNullOrWhiteSpace(programName) ? "NewCncProgram" : programName;
|
||||
return name.EndsWith(".xp", StringComparison.OrdinalIgnoreCase) ? name : $"{name}.xp";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,14 +106,14 @@
|
||||
FontFamily="{StaticResource UiFont}"
|
||||
FontSize="13"
|
||||
FontWeight="SemiBold"
|
||||
Text="{Binding ProgramName, TargetNullValue=CNC编辑}"
|
||||
Text="{Binding ProgramDisplayName, TargetNullValue=CNC编辑}"
|
||||
TextWrapping="Wrap" />
|
||||
<TextBlock
|
||||
Margin="0,3,0,0"
|
||||
FontFamily="{StaticResource UiFont}"
|
||||
FontSize="10"
|
||||
Foreground="#666666"
|
||||
Text="保存位置节点下会自动显示检测标记和检测模块,清晰表达当前检测位置与检测内容的父子关系。"
|
||||
Text="新建或加载已有的CNC检测程序,后缀.xp。"
|
||||
TextWrapping="Wrap" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
@@ -125,6 +125,7 @@
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
ItemsSource="{Binding TreeNodes}"
|
||||
PreviewKeyDown="CncTreeView_PreviewKeyDown"
|
||||
SelectedItemChanged="CncTreeView_SelectedItemChanged">
|
||||
<TreeView.Resources>
|
||||
<HierarchicalDataTemplate DataType="{x:Type vm:CncNodeViewModel}" ItemsSource="{Binding Children}">
|
||||
@@ -204,32 +205,6 @@
|
||||
VerticalAlignment="Center"
|
||||
Orientation="Horizontal"
|
||||
Visibility="Collapsed">
|
||||
<Button
|
||||
Width="20"
|
||||
Height="20"
|
||||
Margin="1,0"
|
||||
Background="White"
|
||||
BorderBrush="#CDCBCB"
|
||||
BorderThickness="1"
|
||||
Command="{Binding DataContext.MoveNodeUpCommand, RelativeSource={RelativeSource AncestorType=TreeView}}"
|
||||
CommandParameter="{Binding}"
|
||||
Content="↑"
|
||||
Cursor="Hand"
|
||||
FontSize="10"
|
||||
ToolTip="上移" />
|
||||
<Button
|
||||
Width="20"
|
||||
Height="20"
|
||||
Margin="1,0"
|
||||
Background="White"
|
||||
BorderBrush="#CDCBCB"
|
||||
BorderThickness="1"
|
||||
Command="{Binding DataContext.MoveNodeDownCommand, RelativeSource={RelativeSource AncestorType=TreeView}}"
|
||||
CommandParameter="{Binding}"
|
||||
Content="↓"
|
||||
Cursor="Hand"
|
||||
FontSize="10"
|
||||
ToolTip="下移" />
|
||||
<Button
|
||||
Width="20"
|
||||
Height="20"
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Globalization;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Input;
|
||||
using XP.Common.Logging.Interfaces;
|
||||
using XplorePlane.Services;
|
||||
using XplorePlane.ViewModels.Cnc;
|
||||
@@ -70,6 +71,18 @@ namespace XplorePlane.Views.Cnc
|
||||
viewModel.SelectedNode = e.NewValue as CncNodeViewModel;
|
||||
}
|
||||
}
|
||||
|
||||
private void CncTreeView_PreviewKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Key != Key.Delete || DataContext is not CncEditorViewModel viewModel)
|
||||
return;
|
||||
|
||||
if (!viewModel.DeleteNodeCommand.CanExecute())
|
||||
return;
|
||||
|
||||
viewModel.DeleteNodeCommand.Execute();
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
public class NullToVisibilityConverter : IValueConverter
|
||||
|
||||
Reference in New Issue
Block a user