using Microsoft.Extensions.DependencyInjection;
using Microsoft.Toolkit.Mvvm.DependencyInjection;
using System;
internal class ViewModelLocator
{
public ViewModelLocator()
{
ConfigureServices();
}
/// <summary>
/// Configures the services for the application.
/// </summary>
private IServiceProvider ConfigureServices()
{
var services = new ServiceCollection();
// Services
// services.AddSingleton<IContactsService, ContactsService>();
// services.AddSingleton<IPhoneService, PhoneService>();
// Viewmodels
services.AddTransient<MainViewModel>();
var serviceProvider = services.BuildServiceProvider();
Ioc.Default.ConfigureServices(serviceProvider);
return serviceProvider;
}
public MainViewModel? MainVM { get { return Ioc.Default.GetService<MainViewModel>(); } }
}
App.xaml
<Application.Resources>
<local:ViewModelLocator x:Key="Locator"/>
</Application.Resources>
view.xaml
<Window x:Class="MainWindow"
DataContext="{Binding Source={StaticReource Locator},Path =MainVM}"
</Window>