【发布时间】:2018-07-01 23:19:59
【问题描述】:
我正在开发一个包含 2 个页面(主页、详细信息页面)的应用程序
主页面包含多个按钮,我想做的是让详细信息页面知道单击了哪个按钮,以便提供正确的详细信息。
我所做的是声明一个静态变量并从主页访问它
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");
【问题讨论】:
-
如何在xaml中绑定静态属性?
-
@ImadBoucetta,从何处以及何时调用
ValuesRefreshed? DetailsPageViewModel.CurrentPage 更改后会发生这种情况吗?请也显示该代码 -
请将您的解决方案移至自己的答案,谢谢。