不使用GetDashboard按钮的Xamarin表单中的ListView数据绑定

不使用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

在登录或导航到仪表板页面,从API获取数据时,我使用了一个额外的按钮ShowCommunities来获取数据。这是我的密码

<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);
}