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 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(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() { } }