Files
OrpaonVision/OrpaonVision.ConfigApp/Views/TrainingTaskManagementWindow.xaml.cs
2026-04-06 22:04:05 +08:00

81 lines
2.0 KiB
C#

using Microsoft.Extensions.Logging;
using OrpaonVision.ConfigApp.ViewModels;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace OrpaonVision.ConfigApp.Views;
/// <summary>
/// 训练任务管理窗口。
/// </summary>
public partial class TrainingTaskManagementWindow : Window
{
private readonly ILogger<TrainingTaskManagementWindow> _logger;
private readonly TrainingTaskManagementViewModel _viewModel;
/// <summary>
/// 构造函数。
/// </summary>
public TrainingTaskManagementWindow(
ILogger<TrainingTaskManagementWindow> logger,
TrainingTaskManagementViewModel viewModel)
{
_logger = logger;
_viewModel = viewModel;
InitializeComponent();
DataContext = _viewModel;
// 启动自动刷新
_viewModel.StartAutoRefresh();
_logger.LogInformation("训练任务管理窗口已初始化");
}
/// <summary>
/// 窗口关闭事件。
/// </summary>
protected override void OnClosed(EventArgs e)
{
try
{
// 停止自动刷新
_viewModel.StopAutoRefresh();
_viewModel.Dispose();
_logger.LogInformation("训练任务管理窗口已关闭");
}
catch (Exception ex)
{
_logger.LogError(ex, "关闭训练任务管理窗口时发生异常");
}
finally
{
base.OnClosed(e);
}
}
/// <summary>
/// 搜索框回车事件。
/// </summary>
private async void SearchTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
await _viewModel.SearchAsync();
}
}
/// <summary>
/// 状态选择变化事件。
/// </summary>
private async void StatusComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems.Count > 0)
{
await _viewModel.SearchAsync();
}
}
}