我正在嘗試創建一個彈出標題,以在FlyoutHeaderTemplate.
我遇到的問題是它看起來OnAppearing()根本沒有為AppShell. 我在該方法中設定了斷點,但從未擊中它。
我還嘗試使用 aContentView在我的 Flyout 中顯示標題,但結果是ContentView's don't haveOnAppearing()或OnDisappearing()生命周期事件。
如何在彈出視窗中顯示經過身份驗證的用戶資訊?我的本地資料庫中有用戶資訊。我需要做的就是:
- 能夠打電話
var user = await _dbService.GetUser();閱讀用戶資訊 - 我還需要能夠系結到某些控制元件,即
Label用戶名和Avatar用戶影像。
這是我的AppShell:
<Shell.FlyoutHeaderTemplate>
<DataTemplate>
<StackLayout>
<Label Text="{Binding ???}"/>
</StackLayout>
</DataTemplate>
</Shell.FlyoutHeaderTemplate>
uj5u.com熱心網友回復:
第一次運行 Appshell 時,它將命中建構式,因此您可以呼叫 var user = await _dbService.GetUser();建構式。然后將外殼系結到自身this.BindingContext = this;。添加一個字串屬性以將其系結到 xaml 中的文本標簽。
private string name;
public string Name { get{return name;} set { SetProperty(ref name, value); }
public AppShell()
{
InitializeComponent();
Task.Run(async () =>
{
await GetUser();
});
this.BindingContext = this;
}
public async void GetUser(){
var user = await _dbService.GetUser();
Name = user.Name;
}
OnAppearing() 每當你去的時候都會命中 await Shell.Current.GoToAsync("..");。所以你也可以呼叫var user = await _dbService.GetUser(); 它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/446864.html
上一篇:從MVVM屬性呼叫異步方法
下一篇:影片針過渡
