鉴于我的 Prism 应用程序项目中有大约 100 个类,因此其他开发人员可能难以调试一个项目。我正在寻找一种在用户导航到任何页面时显示 toast 的方法。此 toast 消息将告诉用户当前 View 的相应 View 模型页面标题。
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")
的情况下实现此类功能在每个类(class)。有没有办法可以覆盖某些东西并实现它?
最佳答案
只需以下几个步骤即可轻松实现
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);
}
}
public class AViewModel : BaseViewModel {
//Constructor
public AViewModel() : base(nameof(AViewModel))
{
//Some code
}
//MethodA public void MethodA() { //Some code } }
笔记:-
base(nameof(AViewModel))
我希望这个能帮上忙
关于c# - 如何在 Prism 的 "OnNavigatingTo"中为任何和所有类执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63070048/