feat(wpf): 添加Ploss和Qfod数据表格视图

This commit is contained in:
ssss
2026-07-06 13:37:34 +08:00
parent cee3536507
commit cf4f24fde3
10 changed files with 411 additions and 9 deletions

View File

@@ -2,6 +2,7 @@ using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using Microsoft.Extensions.DependencyInjection;
using System.Windows;
using WCTDataMiner.Core.Services;
using WCTDataMiner.Wpf.Messages;
@@ -12,7 +13,9 @@ namespace WCTDataMiner.Wpf.ViewModels;
/// </summary>
public partial class MainViewModel : ObservableObject,
IRecipient<NavigateToPlossChartMessage>,
IRecipient<NavigateToQfodChartMessage>
IRecipient<NavigateToQfodChartMessage>,
IRecipient<NavigateToPlossTableMessage>,
IRecipient<NavigateToQfodTableMessage>
{
private readonly ImportViewModel _importViewModel;
private readonly ScenarioListViewModel _scenarioListViewModel;
@@ -59,6 +62,8 @@ public partial class MainViewModel : ObservableObject,
// 注册导航消息订阅
WeakReferenceMessenger.Default.Register<NavigateToPlossChartMessage>(this);
WeakReferenceMessenger.Default.Register<NavigateToQfodChartMessage>(this);
WeakReferenceMessenger.Default.Register<NavigateToPlossTableMessage>(this);
WeakReferenceMessenger.Default.Register<NavigateToQfodTableMessage>(this);
}
/// <summary>
@@ -120,9 +125,12 @@ public partial class MainViewModel : ObservableObject,
/// </summary>
public void Receive(NavigateToPlossChartMessage message)
{
var vm = _serviceProvider.GetRequiredService<PlossChartViewModel>();
vm.ScenarioId = message.ScenarioId;
CurrentView = vm;
Application.Current.Dispatcher.InvokeAsync(() =>
{
var vm = _serviceProvider.GetRequiredService<PlossChartViewModel>();
vm.ScenarioId = message.ScenarioId;
CurrentView = vm;
});
}
/// <summary>
@@ -130,8 +138,37 @@ public partial class MainViewModel : ObservableObject,
/// </summary>
public void Receive(NavigateToQfodChartMessage message)
{
var vm = _serviceProvider.GetRequiredService<QfodChartViewModel>();
vm.ScenarioId = message.ScenarioId;
CurrentView = vm;
Application.Current.Dispatcher.InvokeAsync(() =>
{
var vm = _serviceProvider.GetRequiredService<QfodChartViewModel>();
vm.ScenarioId = message.ScenarioId;
CurrentView = vm;
});
}
}
/// <summary>
/// 接收导航到 Ploss 表格消息
/// </summary>
public void Receive(NavigateToPlossTableMessage message)
{
Application.Current.Dispatcher.InvokeAsync(() =>
{
var vm = _serviceProvider.GetRequiredService<PlossTableViewModel>();
vm.ScenarioId = message.ScenarioId;
CurrentView = vm;
});
}
/// <summary>
/// 接收导航到 Qfod 表格消息
/// </summary>
public void Receive(NavigateToQfodTableMessage message)
{
Application.Current.Dispatcher.InvokeAsync(() =>
{
var vm = _serviceProvider.GetRequiredService<QfodTableViewModel>();
vm.ScenarioId = message.ScenarioId;
CurrentView = vm;
});
}
}