【发布时间】:2021-12-31 01:37:55
【问题描述】:
我是 C# 新手,在 xamarin 中工作。我正在尝试加载要在应用程序中传递的用户,以便在您使用该应用程序时仅为该用户构建配置文件。我现在并不关心或优化我只想知道为什么这不起作用。代码如下所示。
从登录加载用户
private async void LoginButton_Clicked1(object sender, EventArgs e)
{
User user = new User();
if (userNameEntry.Text == null || passwordNameEntry.Text == null)
{
await DisplayAlert("No info", "Please fill out UserName and Password", "Ok");
}
else
{
if (users != null)
{
if (users.Exists(x => x.UserName.ToLower() == userNameEntry.Text.ToLower()))
{
user = users.Find(x => x.UserName.ToLower().Contains(userNameEntry.Text.ToLower()));
if (user.Password != passwordNameEntry.Text)
{
await DisplayAlert("Password MisMatch", "Password don't match. Try again!", "OK");
passwordNameEntry.Text = null;
}
else
{
await Shell.Current.GoToAsync($"//{nameof(FeedPage)}");
MessagingCenter.Send(user, "CurrentUser");
userNameEntry.Text = null;
passwordNameEntry.Text = null;
}
}
}
}
}
试图将该用户加载到应用程序的其他位置
public CoinPage()
{
InitializeComponent();
this.add = new ToolbarItem{Text = "Add", Priority = 0, Order = ToolbarItemOrder.Primary};
collectionView.SelectionChanged += CollectionView_SelectionChanged;
add.Command = new Command((sender) =>
{
this.AddCommand();
});
MessagingCenter.Subscribe<User>(this, "CurrentUser", (sender) =>
{
user = sender; // -always null and can 't figure out why
});
}
【问题讨论】:
-
哎呀。直接将密码与这样的文本框匹配是非常不合适的。