using System; using HandyControlDemo.Service; using Microsoft.Extensions.DependencyInjection; namespace HandyControlDemo.ViewModel; public class ViewModelLocator { private static readonly Lazy InstanceInternal = new(() => new ViewModelLocator(), isThreadSafe: true); public static ViewModelLocator Instance => InstanceInternal.Value; private readonly IServiceProvider _serviceProvider; private ViewModelLocator() { var services = new ServiceCollection(); services.AddSingleton(); services.AddTransient(); _serviceProvider = services.BuildServiceProvider(); } public MainViewModel Main => _serviceProvider.GetService()!; }