2016-07-01 13 views
1

Ich möchte den Wert von meinem Clubid, dass ich Web-Service und verteile es auf die nächste Seite, so dass ich eine dynamische Club-Detail haben würde. Als ich es jedoch versuchte, zeigte es mir einige Fehler. Das sind meine Codes.Wie bekomme ich den Wert von Listview Xamarin.form

ListClubs.xaml.cs

ClubApiClient service = new ClubApiClient(); 

public ListClubs() 
{ 
    InitializeComponent(); 
} 

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

private async Task setClubs(ListView listview) 
{ 
    var clublist = await service.getClubList(2); 
    listview.ItemsSource = clublist.ToList(); 
} 

async void OnListClubsClicked(object sender, EventArgs e) 
{ 
    int clubid = int.Parse(lbId.Text); //Error msg: The name 'lbId' does not exist in the context 
    await Navigation.PushAsync(new DetailedClub()); 
} 

ListClubs.xaml

<ListView x:Name="Clublistview"> 
     <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"/> 
          <Label Text="{Binding Id}" x:Name="lbId" IsVisible="false"/> 
         </StackLayout> 
        </StackLayout> 
       </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

Antwort

2

mit dem Namen "ebd" nicht nützlich ist jedes Element in der Liste ein Label Namen "ebd" hat.

können Sie CommandParameter verwenden, um die ID zu Ihrem Button

<Button Text="{Binding Name}" x:Name="BtnClub" AbsoluteLayout.LayoutBounds="100, 25, 100, 25" Clicked="OnListClubsClicked" TextColor="Black" VerticalOptions="FillAndExpand" CommandParameter="{Binding Id}" /> 

async void OnListClubsClicked(object sender, EventArgs e) 
{ 
    Button btn = (Button) sender; 
    int clubid = (int) btn.CommandParameter; 
    // pass the clubid to your Detail page 
    await Navigation.PushAsync(new DetailedClub(clubid)); 
} 
+0

Dank Mann hinzuzufügen! Es funktioniert jetzt :) –

Verwandte Themen