using System; using System.Collections.ObjectModel; using System.Threading.Tasks; using AvaloniaApplication14_Inventory_300326.Models.DataBase; using AvaloniaApplication14_Inventory_300326.Models.Models; using AvaloniaApplication14_Inventory_300326.Views; using CommunityToolkit.Mvvm.ComponentModel; using Microsoft.Extensions.DependencyInjection; namespace AvaloniaApplication14_Inventory_300326.ViewModels; public partial class PositionViewModel : ViewModelBase { private IServiceProvider _serviceProvider; private MainWindow _currentWindow; [ObservableProperty] private ObservableCollection _positions; [ObservableProperty] private Position _selectedPosition; public PositionViewModel(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } public void GetPositions() { using (var positionRepository = _serviceProvider.GetService()) { var positions = positionRepository.GetAllFrom0(); Positions = new ObservableCollection(positions); } } public void ShowPositions() { _currentWindow.ScrollViewerDataGridTech.IsVisible = false; _currentWindow.ScrollViewerDataGridEmpl.IsVisible = false; _currentWindow.ScrollViewerDataGridPos.IsVisible = true; } public async Task DoubleTappedPositionDataGrid() { var positionVm = ActivatorUtilities.CreateInstance(_serviceProvider, SelectedPosition); var win = ActivatorUtilities.CreateInstance(_serviceProvider, positionVm); await win.ShowDialog(_currentWindow); ShowPositions(); GetPositions(); } public void SetScreen(MainWindow window) { _currentWindow = window; } }