首页 > 其他分享 >Toolkit.Mvvm Ioc

Toolkit.Mvvm Ioc

时间:2022-10-30 20:44:33浏览次数:64  
标签:ConfigureServices Mvvm serviceProvider Toolkit services using Ioc

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>

  

标签:ConfigureServices,Mvvm,serviceProvider,Toolkit,services,using,Ioc
From: https://www.cnblogs.com/dongzhaosheng/p/16842178.html

相关文章

  • Spring Framework之IOC容器的扩展点(TODO)
    坑,待填参考:​​​扩展Spring的几种方式​​​Spring中Bean的生命周期及其扩展点[Spring]Spring容器扩展点​​spring之扩展点​​SpringContainer的扩展点​​Spring架构......
  • mvvm与mvc模型
    什么是mvcmvc模式是modelviewcontrol通过控制器control分层开发是一种通过将复杂的业务逻辑抽离为智能单一的小模块,保证了模块的单一性,方便程序的开发维护,耦合度低什......
  • 【WPF】绘制可视化对象(mvvm模式)
    新建wpf解决方案如下:效果:     源代码下载: ......
  • 4.IOC创建对象的方式
    4.IOC创建对象的方式  配置beans.xml(基于XML的配置元数据的基本结构:)<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="<http://www.springframework.org/sc......
  • 2.IOC理论推导
    2.IOC理论推导1.UserDao接口2.userDaoImpl实现类3.userservice业务接口4.UserServiceImpl业务实现类在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们需要......
  • 爱上源码,重学Spring IoC深入
    回答:我们为什么要学习源码?1、知其然知其所以然2、站在巨人的肩膀上,提高自己的编码水平3、应付面试1.1Spring源码阅读小技巧1、类层次藏得太深,不要一个类一个类的去......
  • 04理解MVVM
    一、MVVM模型M(Model):对于data中的数据V(View):模板VM(ViewModel):Vue实例对象,一般使用vm代表观察发现:data中的所有属性,最后都出现在vm身上。vm身上所有属性,......
  • tideways+toolkit对php代码进行性能分析
    安装tideways拓展gitclonehttps://github.com/tideways/php-xhprof-extension.gitcdphp-xhprof-extension//usr/local/php-7.4.24/bin/phpize./configure--with-php-co......
  • 利用helixtoolkit实现鼠标拖拽模型(不附加操作器)
    思路&步骤大致思想就是利用viewport场景中,相机的方向与模型所在点确定模型的移动平面。再将鼠标在屏幕上的2d坐标转换成viewport中的3d坐标,确定模型新的位置。鼠标按下......
  • IOC--DI--自定义容器
    publicclassXXXContainer:IXXXContainer{//ContainerDicationary保存抽象与细节的映射类型privateDictionary<string,Type>XXXContainerDicationa......