74 lines
2.3 KiB
C#
74 lines
2.3 KiB
C#
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<XLIMS.PSV.ViewModels.MainViewModel>());
|
|
Activities.Add(serviceProvider.GetRequiredService<XLIMS.DEV.ViewModels.MainViewModel>());
|
|
Activities.Add(serviceProvider.GetRequiredService<XLIMS.SP.ViewModels.MainViewModel>());
|
|
Activities.Add(serviceProvider.GetRequiredService<XLIMS.TPRZ.ViewModels.MainViewModel>());
|
|
|
|
// По умолчанию открываем первую
|
|
CurrentActivity = Activities.FirstOrDefault();
|
|
|
|
NavigateCommand = new RelayCommand<IActivityViewModel>(Navigate);
|
|
}
|
|
#endregion //Constructor
|
|
|
|
#region Events
|
|
#endregion //Events
|
|
|
|
#region Fields
|
|
public readonly IServiceProvider _serviceProvider;
|
|
#endregion //Fields
|
|
|
|
#region Properties
|
|
public ObservableCollection<IActivityViewModel> Activities { get; }
|
|
= new ObservableCollection<IActivityViewModel>();
|
|
|
|
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
|
|
}
|
|
}
|