NavisworksTransport/src/UI/WPF/Views/LayerManagementView.xaml.cs

104 lines
3.1 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 System;
using System.Windows.Controls;
using NavisworksTransport.UI.WPF.ViewModels;
namespace NavisworksTransport.UI.WPF.Views
{
/// <summary>
/// LayerManagementView.xaml 的交互逻辑
/// 分层管理页签视图的代码后端
/// </summary>
public partial class LayerManagementView : UserControl
{
/// <summary>
/// 关联的ViewModel
/// </summary>
public LayerManagementViewModel ViewModel { get; private set; }
/// <summary>
/// 构造函数
/// </summary>
public LayerManagementView()
{
InitializeComponent();
// 初始化ViewModel
ViewModel = new LayerManagementViewModel();
DataContext = ViewModel;
}
/// <summary>
/// 带主ViewModel参数的构造函数支持统一状态栏
/// </summary>
/// <param name="mainViewModel">主ViewModel用于统一状态栏</param>
public LayerManagementView(LogisticsControlViewModel mainViewModel)
{
InitializeComponent();
// 创建ViewModel传入主ViewModel引用
ViewModel = new LayerManagementViewModel(mainViewModel);
DataContext = ViewModel;
}
/// <summary>
/// 带ViewModel参数的构造函数
/// </summary>
/// <param name="viewModel">预初始化的ViewModel</param>
public LayerManagementView(LayerManagementViewModel viewModel)
{
InitializeComponent();
ViewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel));
DataContext = ViewModel;
}
/// <summary>
/// 页面加载事件
/// </summary>
private void UserControl_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
try
{
// 页面加载时刷新当前选择状态
_ = ViewModel?.UpdateCurrentSelectionAsync();
}
catch (Exception ex)
{
LogManager.Error($"[LayerManagementView] 页面加载失败: {ex.Message}");
}
}
/// <summary>
/// 页面卸载事件
/// </summary>
private void UserControl_Unloaded(object sender, System.Windows.RoutedEventArgs e)
{
try
{
// 清理资源
ViewModel?.Dispose();
}
catch (Exception ex)
{
LogManager.Error($"[LayerManagementView] 页面卸载失败: {ex.Message}");
}
}
/// <summary>
/// 清理资源
/// </summary>
public void Cleanup()
{
try
{
// 清理ViewModel
ViewModel?.Dispose();
LogManager.Info("LayerManagementView资源清理完成");
}
catch (Exception ex)
{
LogManager.Error($"LayerManagementView清理失败: {ex.Message}");
}
}
}
}