【发布时间】:2019-01-22 14:14:54
【问题描述】:
无法找到从 ListView 获取项目的正确方法。
我的 XAML 绑定:
<ListView x:Name="MyListView" ItemTapped="MyListView_ItemTapped" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Name}"></Label>
<Label Text="{Binding Email}"></Label>
<Image Source="{Binding PhotoUrl}" WidthRequest="20" HeightRequest="20"></Image>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
所有数据都显示出来并且工作正常。类称为论坛:
[JsonProperty("results")]
public List<Result> Results { get; set; }
public class Result
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("email")]
public string Email { get; set; }
[JsonProperty("photoUrl")]
public string PhotoUrl { get; set; }
}
我已经创建了 MyListView_ItemTapped 函数,现在,我试图在点击项目时显示它的名称,但不确定什么是正确的方法。而且我一直认为我只是将一些随机的东西boding放在一起,直到我得到一些东西。
private void MyListView_ItemTapped(object sender, ItemTappedEventArgs e)
{
var index = forums.Results.IndexOf(e.Item as Forums.Result);
DisplayAlert("Alert", forums.Results[index].Name, "OK");
}
所以,如果有人能指出更好的方向,甚至给出几个更好的例子,或者只是解释应该如何做。
【问题讨论】:
-
为什么进出
e.Results就用e.Item.Name,e.Item as Forums.Result反正 -
不能这样做。 e.item 只有 (getHash, equals, getType, tostring())
-
你需要把它转换成
Forums.Result,e.item是被点击的项目,应该是Result
标签: c# xamarin.forms