带静态参数的开关(c#,WPF)
我正在开发一个包含2页(主页面、详细信息页)的应用程序 主页包含多个按钮,我想做的是让详细信息页面知道单击了什么按钮,以便提供适当的详细信息 我所做的是声明一个静态变量并从主页访问它带静态参数的开关(c#,WPF),c#,wpf,static,prism,C#,Wpf,Static,Prism,我正在开发一个包含2页(主页面、详细信息页)的应用程序 主页包含多个按钮,我想做的是让详细信息页面知道单击了什么按钮,以便提供适当的详细信息 我所做的是声明一个静态变量并从主页访问它 private void NavigateToDetails(int ButtonNumber) { _regionManager.RequestNavigate("ContentRegion", "DetailsPage");
private void NavigateToDetails(int ButtonNumber)
{
_regionManager.RequestNavigate("ContentRegion", "DetailsPage");
DetailsPageViewModel.CurrentPage = ButtonNumber;
}
- On Detail page :
private static int _currentPage;
public static int CurrentPage
{
get { return _currentPage; }
set
{
_currentPage = value;
OnStaticPropertyChanged("CurrentPage");
}
}
如果我绑定此静态变量来标记它,但如果我在方法上使用它,它每次都返回0,我希望它执行以下操作:
private void ValuesRefreshed(object sender, EventArgs e)
{
switch (_currentPage)
{
case 1:
Name = ModelDb1.Name
break;
case 2:
Name = ModelDb2.Name
break;
default:
Name = "not found"
break;
}
}
解决了的 更新我刚刚意识到我在修改静态之前调用了页面,所以我所要做的就是将NavigateToDetails重写为
DetailsPageViewModel.CurrentPage = ButtonNumber;
_regionManager.RequestNavigate("ContentRegion", "DetailsPage");
除非必须,否则不要使用静态的东西。注入一个服务(注册为singleton),并将您的信息存储在那里。如何绑定xaml中的静态属性?@ImadBoucetta,从何处调用
ValuesRefreshed
?它是否发生在DetailsPageViewModel.CurrentPage更改之后?请显示代码,请将您的解决方案移到它自己的答案,谢谢。