不使用GetDashboard按钮的Xamarin表单中的ListView数据绑定
在登录或导航到仪表板页面,从API获取数据时,我使用了一个额外的按钮ShowCommunities来获取数据。这是我的密码不使用GetDashboard按钮的Xamarin表单中的ListView数据绑定,xamarin,xamarin.forms,Xamarin,Xamarin.forms,在登录或导航到仪表板页面,从API获取数据时,我使用了一个额外的按钮ShowCommunities来获取数据。这是我的密码 <StackLayout BackgroundColor="#30af91" Padding="60" VerticalOptions="Center"> <Entry Text="{Binding Username}" Placeholder="Username"/> <Entry Text="{Binding Password}" IsP
<StackLayout BackgroundColor="#30af91" Padding="60" VerticalOptions="Center">
<Entry Text="{Binding Username}" Placeholder="Username"/>
<Entry Text="{Binding Password}" IsPassword="True" Placeholder="Password"/>
<Button Command="{Binding LoginCommand}" Text="Login" Clicked="Button_OnClicked"/>
</StackLayout>
LoginView模型中的LoginCommand
public ICommand LoginCommand
{
get
{
return new Command(async() =>
{
var accesstoken = await _apiServices.LoginAsync(Username, Password);
Settings.AccessToken = accesstoken;
});
}
}
public ICommand GetDashboard
{
get
{
return new Command(async () =>
{
var accessToken = Settings.AccessToken;
UserDashboard = await _apiServices.GetDashboard(accessToken);
});
}
}
这是我的仪表板页面
这是同一视图模型中的UserDashboard
public Dashboard UserDashboard
{
get { return _userDashboard; }
set
{
_userDashboard = value;
OnPropertyChanged();
}
}
我想去掉那个多余的按钮 每个页面都有一个OnAppearing方法,在显示页面时激发该方法。您可以使用它来加载数据,而不是让用户单击按钮
public override async void OnAppearing() {
base.OnAppearing();
var accessToken = Settings.AccessToken;
UserDashboard = await _apiServices.GetDashboard(accessToken);
}
使用页面的OnAppearing方法触发数据请求我对此感到困惑。你能指引我吗?我必须在一个小时后提交我的这个最后一年的项目。@UzairNadeem你至少可以接受Jason的答案或回答为什么它不适合你。
public ICommand GetDashboard
{
get
{
return new Command(async () =>
{
var accessToken = Settings.AccessToken;
UserDashboard = await _apiServices.GetDashboard(accessToken);
});
}
}
public Dashboard UserDashboard
{
get { return _userDashboard; }
set
{
_userDashboard = value;
OnPropertyChanged();
}
}
public override async void OnAppearing() {
base.OnAppearing();
var accessToken = Settings.AccessToken;
UserDashboard = await _apiServices.GetDashboard(accessToken);
}