我是 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
});
}
uj5u.com熱心網友回復:
首先,你必須Subscribe 在你之前Send留言
其次,要傳遞引數,請使用此語法
MessagingCenter.Send<MyClass, User>(this, "CurrentUser", user);
其中MyClass是發送訊息User的型別, 是引數的型別,this是對發送者的參考,CurrentUser是訊息,user是引數
認購
MessagingCenter.Subscribe<MyClass, User>(this, "CurrentUser", async (sender, arg) =>
{
// do stuff
});
請注意,型別<T1,T2>必須在Send和之間匹配Subscribe
uj5u.com熱心網友回復:
對于你的問題,可以參考以下代碼:
1.訂閱訊息
MessagingCenter.Subscribe<object, object>(this, "CurrentUser", (sender, args) =>
{
User model = (User)args;
});
2.發布訊息
User user = new User { Name = "user1" ,age = 18};
MessagingCenter.Send<object, object>(this, "CurrentUser", user);
筆記:
在發布訊息之前,請確保您已訂閱訊息。
有關更多資訊,請查看:https : //docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/messaging-center
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/362799.html
上一篇:XamarinForms-告訴Android在運行時切換樣式主題
下一篇:自定義控制元件中的焦點條目
