WPF 高级篇 MVVM (MVVMlight) 依赖注入使用Messagebox

MVVMlight 实现依赖注入 把弹框功能 和接口功能注入到各个插件中

使用依赖注入 先把所有的ViewModel都注册到到容器中 MVVMlight SimpleIoc 来实现注册


        public ViewModelLocator()
        {
            SimpleIoc.Default.Register<MainViewModel>();
            SimpleIoc.Default.Register<EditBookViewModel>();
            SimpleIoc.Default.Register<IDialogService, DialogService>();
        }


        private MainViewModel mainViewModel ;

        public MainViewModel MainViewModel
        {
            get { return mainViewModel = SimpleIoc.Default.GetInstance<MainViewModel>(Guid.NewGuid().ToString()); }
            set { mainViewModel = value; }

        }

        private EditBookViewModel editBookViewModel ;

        public EditBookViewModel EditBookViewModel
        {
            get { return editBookViewModel = SimpleIoc.Default.GetInstance<EditBookViewModel>(Guid.NewGuid().ToString()); }
            set { editBookViewModel = value; }
        }

Message 接口

   public interface IDialogService
    {
       void ShowMessage(string message, string title = "提示");
       bool Confirm(string message, string title = "询问");
    }

实现类

  public class DialogService:IDialogService
    {
        public void ShowMessage(string message, string title = "提示")
        {
            MessageBox.Show(message, title, MessageBoxButton.OK, MessageBoxImage.Information);
        }

        public bool Confirm(string message, string title = "询问")
        {
            var result = MessageBox.Show(message, title, MessageBoxButton.OKCancel, MessageBoxImage.Question);
            if (result == MessageBoxResult.OK)
            {
                return true;
            }
            else 
            {
                return false;
            }
        }
    }

在每一个View Model 的构造函数里  定义接口对象

     public EditBookViewModel(IDialogService dialogService)
        {
 
            DialogService = dialogService;
        }
       private IDialogService dialogService;

        public IDialogService DialogService
        {
            get { return dialogService; }
            set { dialogService = value; }
        }

并使用方法

  DialogService.ShowMessage(EditBookArgs.IsEdit ? "编辑成功" : "新增成功");

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小慧哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值