using Avalar.Models; using Avalar.Services; using Avalar.Services.Interfaces; using Avalar.Viewmodels.Image; using Avalar.ViewModels.Settings; using Avalar.Views; using Avalonia.Controls; using Avalonia.Markup.Xaml; using Microsoft.Extensions.DependencyInjection; namespace Avalar { public class MainWindow : Window { private ImageViewModel ImageVm { get; } private SettingsViewModel SettingsVm { get; } private ImageModel ImageM { get; } public MainWindow() { InitializeComponent(); var serviceCollection = new ServiceCollection(); serviceCollection.AddScoped(typeof(IResizer), typeof(ImageMagickResizer)); serviceCollection.AddScoped(typeof(IBrightness), typeof(ImageMagickBrightness)); serviceCollection.AddScoped(typeof(IAvalarViewService), (sp) => new AvalarViewService(this)); var serviceProvider = serviceCollection.BuildServiceProvider(); ImageM = new ImageModel(serviceProvider); ImageVm = new ImageViewModel(ImageM, serviceProvider); SettingsVm = new SettingsViewModel(ImageM); DataContext = this; } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } } }