diff --git a/src/UI/WPF/ViewModels/AliasNodeViewModel.cs b/src/UI/WPF/ViewModels/AliasNodeViewModel.cs index e4d5a48..8321c58 100644 --- a/src/UI/WPF/ViewModels/AliasNodeViewModel.cs +++ b/src/UI/WPF/ViewModels/AliasNodeViewModel.cs @@ -1,5 +1,6 @@ using System; using System.ComponentModel; +using System.Windows.Input; using Autodesk.Navisworks.Api; namespace NavisworksTransport.UI.WPF.ViewModels @@ -56,9 +57,25 @@ namespace NavisworksTransport.UI.WPF.ViewModels public bool IsEditing { get => _isEditing; - set { _isEditing = value; OnPropertyChanged(nameof(IsEditing)); } + set + { + if (_isEditing == value) return; + _isEditing = value; + OnPropertyChanged(nameof(IsEditing)); + // 进入编辑时初始化 EditValue 为当前显示名 + if (value) + EditValue = DisplayName; + } } + /// 编辑框的临时文本(进入编辑时初始化为 DisplayName) + public string EditValue + { + get => _editValue; + set { _editValue = value; OnPropertyChanged(nameof(EditValue)); } + } + private string _editValue; + /// 是否孤儿节点(模型结构变化后无法定位) public bool IsOrphan { @@ -92,8 +109,12 @@ namespace NavisworksTransport.UI.WPF.ViewModels public AliasNodeViewModel() { + StartEditCommand = new RelayCommand(() => IsEditing = true); } + /// 启动内联编辑的命令 + public ICommand StartEditCommand { get; } + /// /// 刷新显示文本(别名变更新调用) /// diff --git a/src/UI/WPF/Views/AliasTreeControl.xaml b/src/UI/WPF/Views/AliasTreeControl.xaml index 58f8ede..fd05572 100644 --- a/src/UI/WPF/Views/AliasTreeControl.xaml +++ b/src/UI/WPF/Views/AliasTreeControl.xaml @@ -2,7 +2,8 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="clr-namespace:NavisworksTransport.UI.WPF.ViewModels" - xmlns:converters="clr-namespace:NavisworksTransport.UI.WPF.Converters"> + xmlns:converters="clr-namespace:NavisworksTransport.UI.WPF.Converters" + PreviewKeyDown="UserControl_PreviewKeyDown"> @@ -16,16 +17,16 @@ - - - + + - - + - - - - + @@ -98,14 +91,6 @@ -