using Avalonia.Controls; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using GSS2.UI.Core.Services; using GSS2.UI.Core.ViewModels; namespace GSS2.ViewModels; public partial class MainViewModel : ViewModelBase { private Control? _amineContentAnalysisView = null; private readonly NavigationService _navigationService; private readonly DependencyInjectionViewLocator _viewLocator; [ObservableProperty] public partial AmineContentViewModel AmineContentAnalysisViewModel { get; set; } public MainViewModel( NavigationService navigationService, DependencyInjectionViewLocator viewLocator, AmineContentViewModel amineContentAnalysisViewModel ) { _navigationService = navigationService; _viewLocator = viewLocator; AmineContentAnalysisViewModel = amineContentAnalysisViewModel; } [RelayCommand] public void NavigateToAmineContentAnalysis() { if (_amineContentAnalysisView is null) _amineContentAnalysisView = _viewLocator.Build(AmineContentAnalysisViewModel); if (_amineContentAnalysisView is not null) _navigationService.NavigateTo(_amineContentAnalysisView); } [RelayCommand] public void NavigateToColorimetricAnalysis() { } [RelayCommand] public void NavigateToGranulometricAnalysis() { } }