【问题标题】:How to make an aggregate View Model in MVVM?如何在 MVVM 中制作聚合视图模型?
【发布时间】:2018-07-20 00:40:13
【问题描述】:

如何在 MVVM 中制作聚合视图模型?基本上我想将多个 ViewModel 添加在一起。这是我尝试过的。

using System;
using System.Windows.Input;
using Microsoft.VisualStudio.Shell.Interop;

namespace NavigationAssistant
{
    internal class NavigationAssistantViewModel
    {
        private IVsUIShell uiShell;

        private IServiceProvider _serviceProvider { get; }

        public NavigationAssistantViewModel(IVsUIShell uiShell, IServiceProvider serviceProvider)
        {
            this.uiShell = uiShell;
            this._serviceProvider = serviceProvider;
        }

        private ICommand changeThemeCommand;

        public ICommand ChangeThemeCommand
        {
            get
            {
                return this.changeThemeCommand ?? (this.changeThemeCommand = new VSCommand(this._serviceProvider, this.uiShell));
            }
        }
   }
}

【问题讨论】:

    标签: c# visual-studio ms-access


    【解决方案1】:

    没有更多信息,我过去做了两件事之一。

    1. 将每个重构为单独的 MVVM 类以尊重 Single Responsibilty Principle
    2. 创建一个包含相关类的 MVVM 类。

      internal class WrapperViewModel
      {
          private IVsUIShell uiShell;
          private IServiceProvider _serviceProvider { get; }
      
          public WrapperViewModel(IVsUIShell uiShell, IServiceProvider serviceProvider)
          {
          }        
      
          //multiple classes
          public NavigationAssistantViewModel NavigationAssistantViewModel { get;set;}
          public MvvmClass2 MvvmClass2 { get;set;}
      }
      
      //multiple classes      
      private class NavigationAssistantViewModel {
      
      }
      
      private class MvvmClass2 {
      
      }
      

    这有用吗?如果不是,您能否澄清您的问题?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      • 1970-01-01
      相关资源
      最近更新 更多