75 lines
2.6 KiB
C#
75 lines
2.6 KiB
C#
using ArcGIS.Core.CIM;
|
||
using ArcGIS.Core.Data;
|
||
using ArcGIS.Core.Geometry;
|
||
using ArcGIS.Desktop.Catalog;
|
||
using ArcGIS.Desktop.Core;
|
||
using ArcGIS.Desktop.Editing;
|
||
using ArcGIS.Desktop.Extensions;
|
||
using ArcGIS.Desktop.Framework;
|
||
using ArcGIS.Desktop.Framework.Contracts;
|
||
using ArcGIS.Desktop.Framework.Dialogs;
|
||
using ArcGIS.Desktop.Framework.Threading.Tasks;
|
||
using ArcGIS.Desktop.KnowledgeGraph;
|
||
using ArcGIS.Desktop.Layouts;
|
||
using ArcGIS.Desktop.Mapping;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
using Microsoft.Extensions.DependencyInjection;
|
||
using Microsoft.Extensions.Hosting;
|
||
using Microsoft.Extensions.Logging;
|
||
using Microsoft.Extensions.Logging.Console;
|
||
using System.Collections.ObjectModel;
|
||
using LinkToolAddin.message;
|
||
|
||
namespace LinkToolAddin.ui.dockpane
|
||
{
|
||
internal class DialogDockpaneViewModel : DockPane
|
||
{
|
||
private const string _dockPaneID = "DialogDockpane";
|
||
|
||
private ObservableCollection<MessageListItem> _message = new ObservableCollection<MessageListItem>();
|
||
//ObservableCollection<T> 是 .NET 提供的一个特殊集合类,它会在集合发生变化时自动通知 UI 更新,它实现了 INotifyCollectionChanged 接口,UI 绑定后可以自动刷新。
|
||
public ObservableCollection<MessageListItem> Messages => _message;
|
||
//定义了一个只读属性 Messages,返回内部的 _messages 集合。
|
||
//该属性将被绑定到 UI 的 ItemsControl.ItemsSource 上,这样 UI 就能实时显示新消息。
|
||
protected DialogDockpaneViewModel() { }
|
||
|
||
/// <summary>
|
||
/// Show the DockPane.
|
||
/// </summary>
|
||
internal static void Show()//显示面板
|
||
{
|
||
DockPane pane = FrameworkApplication.DockPaneManager.Find(_dockPaneID);
|
||
if (pane == null)
|
||
return;
|
||
|
||
pane.Activate();
|
||
}
|
||
|
||
/// <summary>
|
||
/// Text shown near the top of the DockPane.
|
||
/// </summary>
|
||
private string _heading = "My DockPane";//标题栏文字
|
||
public string Heading
|
||
{
|
||
get => _heading;//绑定到 UI 上的标题文字,默认是 "My DockPane"。
|
||
set => SetProperty(ref _heading, value);//属性变更通知方法,用于支持数据绑定
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Button implementation to show the DockPane.
|
||
/// </summary>
|
||
internal class DialogDockpane_ShowButton : Button//用于打开面板
|
||
{
|
||
protected override void OnClick()
|
||
{
|
||
|
||
DialogDockpaneViewModel.Show();
|
||
}
|
||
}
|
||
}
|