Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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# 跨视图模型携带数据并根据此数据填充按钮_C#_Xamarin - Fatal编程技术网

C# 跨视图模型携带数据并根据此数据填充按钮

C# 跨视图模型携带数据并根据此数据填充按钮,c#,xamarin,C#,Xamarin,我创建了一个Xamarin.Forms应用程序,允许用户使用用户名和密码登录。根据他们的用户名,他们的角色被定义 我的模型如下: public class UserDetails { public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } public bool Truck { get;

我创建了一个Xamarin.Forms应用程序,允许用户使用用户名和密码登录。根据他们的用户名,他们的角色被定义

我的模型如下:

public class UserDetails
{
        public int Id { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
        public bool Truck { get; set; }
        public bool Car { get; set; }
        public bool Bus { get; set; }
}

public class TransportDetails
{
        public int Id { get; set; }
        public string Name { get; set; }
        public string Url{ get; set; }
}
现在,我创建了一个包含硬编码数据的基本列表,如下所示:

 public List<UserDetails> GetAllUserDetails()
 {
     List<UserDetails> userDetails = new List<UserDetails>
     {
        new UserDetails
         {
                    Id = 1,
                    Username = "admin",
                    Password = "123",
                    Truck = false,
                    Car = true,
                    Bus = true
                },
                new UserDetails
                {
                    Id = 2,
                    Username = "superadmin",
                    Password = "123",
                    Truck = true,
                    Car = false,
                    Bus = true
                }
            };

     return userDetails;
}
 public void CheckLogin()
        {
            Data data = new Data();

            allUsers = new List<UserDetails>();

            allUsers = data.GetAllUserDetails();

            if (allUsers.Any(x => x.Username.Equals(Username) && x.Password.Equals(Password)))
            {
                Application.Current.MainPage.Navigation.PushAsync(new MainPage(Username));
            }
            else
            {
                Application.Current.MainPage.DisplayAlert("Error", "Invalid credentials", "OK");
            }
        }
我想要实现的是,在检查凭据时,如果凭据正确,我希望获得用户有权获得的传输详细信息的相应数据

与用户
Admin
一样,他有权获取
Car
Bus
的数据。导航到
主页时,如何通过构造函数传递这些数据


请提供帮助。

不要只将他们的用户名传递到主页,而是传递他们的UserDetails对象

if (allUsers.Any(x => x.Username.Equals(Username) && x.Password.Equals(Password)))
{
    var user = allUsers.Where(x => x.Username.Equals(Username) && x.Password.Equals(Password)).First();
    Application.Current.MainPage.Navigation.PushAsync(new MainPage(user));
}

而不是只将用户名传递到主页,传递他们的UserDetails对象如何做到这一点?我如何也能获得传输详细信息的相应数据?做同样的事情-查询你想要的数据并将它们作为参数传递到你的页面我想让按钮在用户登录后根据模型
UserDetails
中的属性动态显示。然后,当按钮基于此用户的
true
显示时,我需要
TransportDetails
模型中的按钮名称和按钮值(url)。你知道我该如何做到这一点吗?我完全搞糊涂了。我检查了绿色标记。这个问题本身也提到了这一点。如果可以的话,请提供帮助。您问了两个不同的问题-一个是关于在页面之间传递数据的问题,另一个是关于动态构建UI的问题。请将您的问题限制在每篇文章1个
if (allUsers.Any(x => x.Username.Equals(Username) && x.Password.Equals(Password)))
{
    var user = allUsers.Where(x => x.Username.Equals(Username) && x.Password.Equals(Password)).First();
    Application.Current.MainPage.Navigation.PushAsync(new MainPage(user));
}