using Microsoft.EntityFrameworkCore.ChangeTracking; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text; using System.Windows; using System.Windows.Input; using XLIMS.CONTRACT; using XLIMS.CORE.Windows; using XLIMS.MVVM.Base; namespace XLIMS.CORE.ViewModels { public class MainViewModel:ViewModelBase { #region Constructor public MainViewModel(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; // Регистрация доступных activities Activities.Add(serviceProvider.GetRequiredService()); Activities.Add(serviceProvider.GetRequiredService()); Activities.Add(serviceProvider.GetRequiredService()); Activities.Add(serviceProvider.GetRequiredService()); // По умолчанию открываем первую CurrentActivity = Activities.FirstOrDefault(); NavigateCommand = new RelayCommand(Navigate); } #endregion //Constructor #region Events #endregion //Events #region Fields public readonly IServiceProvider _serviceProvider; #endregion //Fields #region Properties public ObservableCollection Activities { get; } = new ObservableCollection(); private IActivityViewModel _currentActivity; public IActivityViewModel CurrentActivity { get => _currentActivity; set { if (_currentActivity != value) { _currentActivity = value; OnPropertyChanged(); } } } #endregion //Properties #region Methods private void Navigate(IActivityViewModel vm) { if (vm != null) CurrentActivity = vm; } #endregion //Methods #region Commands public ICommand NavigateCommand { get; } #endregion //Commands } }