xamarin.forms ListView ItemSelected
Eu tenho uma pergunta sobre o evento ItemSelected () em um elemento ListView.
Meu ListView é baseado em um DataTemplate como este:
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Label Text="{Binding Name}" FontAttributes="Bold" />
<Button Text="More" Clicked="MoreInfo" c="{Binding Name}"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
Que obtém uma matriz de PlaceItems que está estruturada abaixo.
private PlaceItem[] places = {
new PlaceItem("Theo's huis"),
new PlaceItem("Kerk op de berg"),
new PlaceItem("Hostel Stay Okay")
};
public class PlaceItem
{
public PlaceItem(string Name, double Lat = 0.0, double Lng = 0.0)
{
this.Name = Name;
this.Lat = Lat;
this.Lng = Lng;
}
public string Name { get; set; }
public string Location { get; set; }
public double Lat { get; set; }
public double Lng { get; set; }
}
Este é o meu método SelectedItem ():
placesListView.ItemSelected += (object sender, SelectedItemChangedEventArgs e) =>
{
DisplayAlert("ItemSelected", e.SelectedItem.ToString(), "Ok");
};
Quando seleciono um item, ele sempre alerta com a string "KK2.PlaceItem", onde KK2 é o meu espaço para nome. Então, como envio dados para o evento ItemSelected a partir do Item do ListView? Como enviar o índice do item na matriz ou enviar as propriedades Lat ou Lng do objeto.
Espero ter lhe dado informações suficientes para me ajudar com esse problema. Xamarin é novo para mim, mas estou disposto a aprender.
Desde já, obrigado.
Theo