![](/img/trans.png)
[英]ItemSelected on ListView and more information about the object (Xamarin.Forms, C #)
[英]xamarin.forms ListView ItemSelected
我對 ListView 元素上的 ItemSelected() 事件有疑問。
我的 ListView 基於這樣的 DataTemplate:
<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>
它得到一個 PlaceItems 數組,其結構如下。
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; }
}
這是我的 SelectedItem() 方法:
placesListView.ItemSelected += (object sender, SelectedItemChangedEventArgs e) =>
{
DisplayAlert("ItemSelected", e.SelectedItem.ToString(), "Ok");
};
當我選擇一個項目時,它總是用字符串“KK2.PlaceItem”發出警報,其中 KK2 是我的命名空間。 那么如何從 ListView 項向 ItemSelected 事件發送數據呢? 就像在 Array 中發送 Item 索引,或者從對象發送 Lat 或 Lng 屬性一樣。
我希望我給了你足夠的信息來幫助我解決這個問題。 Xamarin 對我來說是新的,但我願意學習它。
提前致謝。
西奧
placesListView.ItemSelected += (object sender, SelectedItemChangedEventArgs e) =>
{
var item = (PlaceItem) e.SelectedItem;
// now you can reference item.Name, item.Location, etc
DisplayAlert("ItemSelected", item.Name, "Ok");
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.