42 lines
1.4 KiB
C#
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()
|
|
{
|
|
}
|
|
} |