Как запустить метод модели просмотра, запустившей диалоговое окно - PullRequest
0 голосов
/ 19 июня 2020

Я работаю над диалоговым окном выбора, которое создается с помощью окна.

Я хотел бы выбрать записи в Listbox и передать их вызывающей модели просмотра, чтобы отобразить их в виде дерева .

На самом деле я вызываю Dialog и передаю модель просмотра this в качестве параметра, чтобы получить доступ к методу, вложенному в вызывающую модель просмотра
:

        #region Load Popup
        GeneratorSelectionPopup SelectionPopup = new GeneratorSelectionPopup(this);
        (SelectionPopup.DataContext as GeneratorSelectionViewModel).Generators = ItemsList;
        SelectionPopup.ShowDialog();
        #endregion

вызываемое окно (выделенный код)

    public GeneratorSelectionPopup(ProjectViewModel projectview)
    {
        InitializeComponent();
        this.DataContext = new GeneratorSelectionViewModel(this, projectview);
    }

Вызываемая модель просмотра:

    public GeneratorSelectionViewModel(Window window, ProjectViewModel projectViewModel)
    {
        mWindow = window;
        _projectview = projectViewModel;
        GeneratorSelectedCommand = new RelayCommand(GeneratorSelected, SelectionChanged);
    }

    private void GeneratorSelected(object parameter)
    {
        if (SelectedItem != null)
        {
            _projectview.TestMethod(SelectedItem);
        }
    }

И обратно в вызывающую модель просмотра ,
вызываемый метод:

    public void TestMethod(GeneratorListItem selection)
    {
        MessageBox.Show(selection.GeneratorKey);
        //add the selected item to treeview...
    }

Пока он работает, но мне это кажется немного странным.

Простой вопрос, это правильный путь или есть способ лучше вызвать метод?

...