У меня вопрос о связи VM.Доступ к MainViewModel с другой модели просмотра
Вот мой код в приложении C#/WPF. На моем MainWindow.xam у меня есть кнопка. При нажатии этой кнопки Мне нужно получить доступ и изменить коллекцию ProductList из другой ViewModel. Как мне это достичь?
public List<ProductInfo> ProductList { get; private set; }
private MainWindow m_mvWindow = null;
public MainWindowViewModel(MainWindow window)
{
this.m_mvWindow = window;
}
MainWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MainWindowViewModel(this);
}
}
Благодарности.
Вы используете MVVM-каркас? Я использую MVVM Light, и для такой проблемы я бы использовал класс Messenger (реализация шаблона посредника). «Другая» VM подписалась на сообщение, и MainViewModel (в команде, управляющей щелчком кнопки), отправит сообщение. – Misza
Зачем вы хотите это сделать? Если у вашей кнопки «MainWindow» есть кнопка, эта кнопка должна вызывать «ICommand» из вашего «MainWindowViewModel», и это позволит изменить данные, возможно, через службу. Если данные также отображаются в другом представлении, то это представление и «MainWindow» должны получать свои данные из общего источника, и этот источник должен уведомлять об обновлениях. _Вы действительно не нужно передавать модели или команды просмотра в другую модель или команды вида, они есть для view._ – Haukinger