@Pitonist224

Как правильно сделать несколько окон в wpf с использованием mvvm паттерна?

Не могу найти адекватной статьи по поводу того, как сделать многооконное приложение на wpf с использованием mvvm.

По заданию нужно при нажатии на кнопку в главном окне открыть ещё одно окно с графиком, данные для которого будут переданы из MainViewModel.
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
@Pitonist224 Автор вопроса
Не знаю на сколько это верное решение, но вот что я сделал погуглив ещё немного.
Создал WindowService
public interface IWindowService
    {
        public void ShowWindow<T>(object dataContext) where T : Window, new();
    }

public class WindowService : IWindowService
    {
        public void ShowWindow<T>(object dataContext) where T : Window, new()
        {
            var window = new T
            {
                DataContext = dataContext
            };

            window.Show();
        }
    }


Создал само окно GraphWindow.xaml и его ViewModel - GraphViewModel

А в MainViewModel создал вот такой метод
// PS. ws = WindowService
public void ExecuteShowGraph(object parameter)
        {
            ws.ShowWindow<GraphWindow>(new GraphViewModel(Коллекция точек для графика));
        }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
VariusRain
@VariusRain
музыкант-программист-конструктор
На самом деле тут нет никакого секрета.
Статей нет скорее всего по тому, что вопрос не так сложен, как может показаться.
Для этого достаточно просто в дата контекст второго окна указать ту же view model
Буквально тот же экземпляр и всё.

Вы можете это сделать в момент создания экземпляра нового окна, передав this в его конструктор, например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SoftAge Новосибирск
от 130 000 до 150 000 ₽
GD Company Санкт-Петербург
от 120 000 до 150 000 ₽
ЧИТАЙ-ГОРОД Москва
от 130 000 до 180 000 ₽
10 апр. 2020, в 20:24
35000 руб./за проект
10 апр. 2020, в 19:58
15000 руб./за проект