livia-test/Livia/ViewModels/PerfusionDataGridControlViewModel.cs
2025-03-28 14:31:53 +08:00

42 lines
1.4 KiB
C#

using System.Collections.ObjectModel;
using System.IO;
using System.Text.Json;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Messaging;
using Livia.Models.Data;
using Livia.Utility;
namespace Livia.ViewModels;
public class PerfusionDataGridControlViewModel : ObservableObject, ILiviaModuleViewModel
{
public ObservableCollection<PerfusionData> RegionsCollection { get; } = [];
public string GridName { get => _gridName; private set => SetProperty(ref _gridName, value); }
public string GridTabName { get => _gridTabName; set => SetProperty(ref _gridTabName, value); }
public string LoadPath { get; set; } = string.Empty;
public static string LoadAtlasName = "ASL-cCBF";
private string _gridName = string.Empty;
private string _gridTabName = string.Empty;
public async Task LoadData(DataBlock dataBlock)
{
string file = Path.Combine(dataBlock.ResultPath, LoadPath, $"{LoadAtlasName}.json");
PerfusionDataJson dataJson = JsonSerializer.Deserialize<PerfusionDataJson>(await File.ReadAllTextAsync(file), UtilityExtensions.JsonSerializerOptions);
RegionsCollection.Clear();
foreach (PerfusionData data in dataJson.Regions)
{
RegionsCollection.Add(data);
}
GridName = LoadAtlasName;
}
public PerfusionDataGridControlViewModel()
{
WeakReferenceMessenger.Default.RegisterAll(this);
}
public void Init()
{
}
}