c# - 如何在 Prism 的“OnNavigatingTo”中为任何和所有类执行操作
问题描述
鉴于我的 Prism 应用程序项目中有大约 100 个类,因此其他开发人员很难调试一个项目。我正在寻找一种在用户导航到任何页面时显示敬酒的方法。此 toast 消息将告诉用户当前视图的相应视图模型页面标题。
public class AViewModel
{
public override void OnNavigatingTo(INavigationParameters parameters)
{
Toast("AViewModel")
}
}
public class BViewModel
{
public override void OnNavigatingTo(INavigationParameters parameters)
{
Toast("BViewModel")
}
}
public class CViewModel
{
public override void OnNavigatingTo(INavigationParameters parameters)
{
Toast("CViewModel")
}
}
public class DViewModel
{
public override void OnNavigatingTo(INavigationParameters parameters)
{
Toast("DViewModel")
}
}
我希望实现这样的功能,而不是实际包括Toast("ViewModelName")
在每个类中。有没有办法可以覆盖某些东西并实现它?
解决方案
只需以下几个步骤即可轻松实现
创建一个 BaseViewModel 类
public class BaseViewModel : INavigationAware { string PageName { get; set; } public BaseViewModel(string pageName) { PageName = pageName; } public virtual void OnNavigatedFrom(INavigationParameters parameters) { //Methods gets called when current active page navigated to some other page } public virtual void OnNavigatedTo(INavigationParameters parameters) { //Methods gets called when current page is activated //System.Diagnostics.StackFrame stackFrame = new System.Diagnostics.StackFrame(1); //Toast(stackFrame.GetMethod().DeclaringType.Name); Toast(PageName); } }
为您的每个 ViewModel 类继承 BaseViewModel 类
public class AViewModel : BaseViewModel { //Constructor public AViewModel() : base(nameof(AViewModel)) { //Some code }
//MethodA public void MethodA() { //Some code } }
笔记:-
基地(名称(AViewModel))
我希望这个能帮上忙
推荐阅读
- python - Scrapy Splash 无法获取 React 站点的数据
- r - 如何使用三列在 R 中制作堆叠条形图,我想使用 barplot() 函数
- excel - 为什么附件方法不能正常工作
- python - Syntax error when trying to define series of numeric variables in python
- firebase - 我可以将 firebase 中实时数据库中的数据导入 bigquery 吗?
- arrays - Pythonic way to assign 3rd Dimension of Numpy array to 1D Array
- mysql - Is there an alternative way to filter records without using Where clause
- javascript - 将 cUrl 令牌调用转换为 axios
- statistics - Google Cast SDK 开发人员控制台统计信息中的“内部”平台类型指的是什么?
- angular - 使用 angular 和 heroku 使 Json-Server 实时工作