Вызов или отправка значений из MainViewModel в другие ViewModel mvvm mvvm light

Мы используем фреймворк mvvm light для создания нашего приложения. В нашей папке ViewModel у нас есть несколько файлов Viewmodel, таких как orderSupplyViewModel, HouseholdSupplyViewModel и т. Д., В соответствии с различными функциями приложения. Мы включили все эти модели представления в MainViewModel, сделав 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()
        {


        }

person Tarun    schedule 10.08.2010    source источник


Ответы (2)


Для независимой связи MVVM Light toolkit предоставляет класс обмена сообщениями. Он также может запускать диалоги и обеспечивать обратные вызовы. Очень удобно очень легко очень полезно.

Мессенджер описан здесь: http://www.galasoft.ch/mvvm/getstarted/

person server info    schedule 10.08.2010
comment
Спасибо. Но нам нужно разделить разные модели просмотра, поскольку все они представляют собой одну модель просмотра, то есть MainViewModel, использующую частичные классы. Пожалуйста, предложите? - person Tarun; 10.08.2010
comment
Не понимаю этого точно. Почему бы не использовать класс ViewModelBase или и не унаследовать общее поведение. Тогда вам не нужны частичные классы? Или вы имеете в виду другое ... - person server info; 10.08.2010

У вас НЕ ДОЛЖНО иметь кучу частичных определений MainViewModel. Вы должны создать отдельные классы ViewModel для каждого типа ViewModel.

В Visual Studio, обозревателе решений, ‹Ваш проект› щелкните правой кнопкой мыши папку [ViewModel] -> Добавить -> Новый элемент ... -> Mvvm Light ViewModel. Это должно добавить новый класс ViewModel, который наследует ViewModelBase.

person Jake Berger    schedule 18.01.2011