Как вызвать событие в viewmodel реальной целевой страницы, когда оно вызывается из пункта меню в представлении главной страницы? - PullRequest
0 голосов
/ 30 сентября 2019

В обеих моделях представления, главной странице и целевой странице, есть одни и те же методы, называемые «SaveEntry». если щелкнуть пункт меню, реализованный в виде главной страницы, в случае, если главная страница активна, должен выполняться метод 'SaveEntry' в модели основного вида. В другом случае, когда целевая страница активна и я щелкаю по пункту меню в главном представлении, должен выполняться метод «SaveEntry» на целевой странице модели представления.

Навигация с главной страницыНа целевой странице реализовано перенаправленное событие:

MainContentFrame.NavigateToType(typeof(WriteEntryPage), null, navOptions);

Как я могу это реализовать?

1 Ответ

0 голосов
/ 30 сентября 2019

По вашему требованию вы можете использовать NavigationView в качестве навигации для обработки навигации по странице, связать загруженное событие с помощью команды, а затем выполнить SaveEntry в View Model при загрузке страницы.

<interactivity:Interaction.Behaviors>
    <core:EventTriggerBehavior EventName="Loaded">
        <core:InvokeCommandAction Command="{x:Bind ViewModel.ViewLoadedCommand}" />
    </core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>

ViewModel

public class MainViewModel : ViewModelBase
{
    public RelayCommand ViewLoadedCommand { get; private set; }
    public MainViewModel()
    {
        ViewLoadedCommand = new RelayCommand(SaveEntry);
    }


    private void SaveEntry()
    {
        // save entry.
    }
}

Я загрузил образец кода , пожалуйста, обратитесь.

...