2016-06-28 4 views
0

Я хочу отображать имя и логотип в представлении «Список», однако результат не отображает его. Есть ли способ передать эту ошибку и показать результаты? При попытке отладки проблемы на setClubs() появляется сообщение об ошибке.xamarin.forms display on listview

<ListView x:Name="Clublistviews"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <ViewCell> 
        <StackLayout BackgroundColor="White" 
        Orientation="Vertical"> 
         <StackLayout Orientation="Horizontal"> 
          <Image Source="{Binding Logo}" IsVisible="true" WidthRequest="42" HeightRequest="42"/> 
          <Button Text="{Binding Name}" x:Name="BtnClub" AbsoluteLayout.LayoutBounds="100, 25, 100, 25" Clicked="OnListClubsClicked" TextColor="Black" VerticalOptions="FillAndExpand"/> 
         </StackLayout> 
        </StackLayout> 
       </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

Моего xaml.cs кода

public ListClubs() 
    { 
     InitializeComponent(); 
     setClubs(); //The statement is not awaited and execution of current method continues before the call is complete. Consider using 'await' operator or calling 'Wait' method 
    } 

    public IEnumerable<CsClubList> ClubList 
    { 
     get { return _ClubList; } 
     set { _ClubList = value; } 
    } 

    private async Task setClubs() 
    { 
     ClubApiClient service = new ClubApiClient(); 
     var clublist = await service.getClubList(); 
     Clublistviews.ItemsSource = clublist.ToList(); 
    } 

ответ

1

Избегайте использование метода асинхронного в конструкторе.

В вашем page.cs (где вы добавили Clublistviews), переопределите OnAppearing и вызовите функцию Clublistviews.setClubs().

protected override async void OnAppearing() 
{ 
    await Clublistviews.setClubs(); 
}