从MainViewModel调用或发送值到其他ViewModel mvvm mvvm light

时间:2010-08-10 10:34:32

标签: c# wpf mvvm mvvm-light

我们正在使用mvvm light框架来构建我们的应用程序。在我们的ViewModel文件夹中,根据应用程序的不同功能,我们有许多Viewmodel,如orderSupplyViewModel,HouseholdSupplyViewModel等文件。我们通过将MainViewModel作为部分类将所有这些viewModel包含在MainViewModel中。所以你可以说我们有一个MainViewModel。现在我们已经完成了40%的应用程序,我们需要将视图模型分离为一个部分类。这样我们就可以从mainviewModel调用不同的viewmodel。怎么去呢?以下是一个名为 - 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()
        {


        }

2 个答案:

答案 0 :(得分:0)

以分离的方式进行通信MVVM Light工具包提供了messenger类。 它还可以启动对话框并提供回调。非常方便非常轻便非常有用。

此处描述了Messenger:http://www.galasoft.ch/mvvm/getstarted/

答案 1 :(得分:0)

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

在Visual Studio,Solution Explorer,&lt; Your Project&gt;中,右键单击[ViewModel]文件夹 - &gt;添加 - &gt;新物品...... - &gt; Mvvm Light ViewModel。这应该添加一个继承ViewModelBase的新ViewModel类。