如何正确在wpf中的页面之间导航

问题描述 投票:0回答:1

在 C# WPF EntityFramework 页面之间切换

我在 wpf 中的页面之间切换,我的应用程序的逻辑如下:我有一个登录页面,并从该页面创建一个新主页页面的示例,我传递登录者的用户 ID构造函数,我这样做:

private void LoginButton_Click(object sender, RoutedEventArgs e)
        {
            if ((LoginTextBox.Text != "") && (PasswordTextBox.Text != ""))
            {
                using (var db = new colledgeDepartmentEntities())
                {
                    var user = (from u in db.users where
                               u.login == LoginTextBox.Text && u.password == PasswordTextBox.Text select u).FirstOrDefault();
                    if (user != null)
                    {
                        int userId = user.idUser;
                        //PageHelper.main.FrameMain.Navigate(new HomePage(userId));
                        this.NavigationService.Navigate(new HomePage(userId));
                    }
                    else
                    {
                        MessageBox.Show("Логин или пароль введен не верно");
                    }
                }
            }
        } 

从主页我转到另一个页面,该页面的菜单有一个返回主页的转换字段,我需要传递在那里登录的用户ID,但我不知道如何传递它我也无法在构造函数中将此参数设置为可选。 我是一名学生,不知道如何正确做,我很高兴收到任何有关如何在我的情况下做/如何正确做的批评和建议。

PageHelper.main.FrameMain.Navigate(new HomePage(userId)); - the variant that I originally have 
this.NavigationService.Navigate(new HomePage(userId)); - the variant that I found on the Internet
c# wpf entity-framework
1个回答
0
投票

我会引入一个

viewmodel
来保存
HomePage
视图的相关数据。或者引入
UserService
来保存整个应用程序中的用户相关数据。

但是既然你说你还在学习,我也可以提供 一个快速而肮脏的解决方案,没有任何新概念。您可以在主页上创建一个公共属性并通过单击事件进行设置。

 var homepage = new HomePage()
 hompage.UserId = userId;
 this.NavigationService.Navigate(homepage);
© www.soinside.com 2019 - 2024. All rights reserved.