当从主页视图中的菜单项触发事件时,如何在实际登录页面的视图模型中引发事件?

问题描述 投票:0回答:1

在两种视图模型中,主页和登录页面都有相同的方法,称为“ SaveEntry”。如果单击菜单项(在主页视图中实现),则在主页处于活动状态的情况下,必须执行主视图模型中的“ SaveEntry”方法。在另一种情况下,当登录页面处于活动状态并且我单击主视图中的菜单项时,则必须执行视图模型登录页面中的方法“ SaveEntry”。

从主页到登录页面的导航是通过路由事件实现的:

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

我该如何实现?

c# mvvm-light uwp-xaml
1个回答
0
投票

根据您的要求,您可以使用NavigationView作为导航来处理页面导航,将加载的事件与Command绑定,然后在加载页面时在View Model中执行NavigationView

SaveEntry

ViewModel

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

我已经上传了public class MainViewModel : ViewModelBase { public RelayCommand ViewLoadedCommand { get; private set; } public MainViewModel() { ViewLoadedCommand = new RelayCommand(SaveEntry); } private void SaveEntry() { // save entry. } } ,请参考。

© www.soinside.com 2019 - 2024. All rights reserved.