Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带静态参数的开关(c#,WPF)_C#_Wpf_Static_Prism - Fatal编程技术网

带静态参数的开关(c#,WPF)

带静态参数的开关(c#,WPF),c#,wpf,static,prism,C#,Wpf,Static,Prism,我正在开发一个包含2页(主页面、详细信息页)的应用程序 主页包含多个按钮,我想做的是让详细信息页面知道单击了什么按钮,以便提供适当的详细信息 我所做的是声明一个静态变量并从主页访问它 private void NavigateToDetails(int ButtonNumber) { _regionManager.RequestNavigate("ContentRegion", "DetailsPage");

我正在开发一个包含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");
    

除非必须,否则不要使用静态的东西。注入一个服务(注册为singleton),并将您的信息存储在那里。

如何绑定xaml中的静态属性?@ImadBoucetta,从何处调用
ValuesRefreshed
?它是否发生在DetailsPageViewModel.CurrentPage更改之后?请显示代码,请将您的解决方案移到它自己的答案,谢谢。