LinkToolAddin/ui/dockpane/DialogDockpaneViewModel.cs

75 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}
}