【问题标题】:Calling or sending values from MainViewModel to other ViewModels mvvm mvvm light从 MainViewModel 调用或发送值到其他 ViewModels mvvm mvvm light
【发布时间】:2010-08-10 10:34:31
【问题描述】:

我们正在使用 mvvm light 框架来构建我们的应用程序。在我们的 ViewModel 文件夹中,根据应用程序的不同功能,我们有许多 Viewmodel,例如 orderSupplyViewModel、HouseholdSupplyViewModel 等文件。我们通过将 MainViewModel 设置为分部类,将所有这些 viewModel 包含在 MainViewModel 中。所以你可以说我们有一个 MainViewModel。现在我们已经完成了 40% 的应用程序,我们需要将视图模型分离为一个部分类。这样我们就可以从 mainviewModel 调用不同的视图模型。如何去做?以下是一个名为 - OrderSuppliesViewModel 的视图模型的代码

namespace ParentalHealthClient.ViewModel
{
    /// <summary>
    /// This class contains properties that a View can data bind to.
    /// <para>
    /// </summary>
    public partial class MainViewModel : ViewModelBase
    {
        private List<UserMedicalSupplyBO> _selectedFavouriteMedicalItems;
        private List<HouseholdItemsBO> _selectedFavouriteHouseHoldItems;
        private List<OrderSuppliesBO> _selectedOrderItems;
        private HouseholdSuppliesDAO _dataAccessForOrder;

        /// <summary>
        /// Initializes a new instance of the OrderSuppliesViewModel class.
        /// </summary>
        public void OrderSuppliesViewModel()
        {


        }

【问题讨论】:

    标签: c# wpf mvvm mvvm-light


    【解决方案1】:

    为了以解耦的方式进行通信,MVVM Light 工具包提供了 messenger 类。 它还可以启动对话框并提供回调。很方便很轻很实用。

    这里描述了 Messenger:http://www.galasoft.ch/mvvm/getstarted/

    【讨论】:

    • 谢谢。但是我们需要将不同的视图模型分开,因为它们都是一个视图模型,即使用部分类的 MainViewModel。请推荐?
    • 不太明白。为什么不使用或 ViewModelBase 类并继承常见行为。那么你不需要部分课程吗?或者你的意思是不同的……
    【解决方案2】:

    你不应该有一堆 MainViewModel 部分定义。您应该为每种类型的 ViewModel 创建个人 ViewModel 类。

    在 Visual Studio 的解决方案资源管理器中,,右键单击 [ViewModel] 文件夹 -> 添加 -> 新项目... -> Mvvm Light ViewModel。这应该添加一个继承 ViewModelBase 的新 ViewModel 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-02
      • 2015-05-21
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      • 1970-01-01
      相关资源
      最近更新 更多