【发布时间】:2019-08-19 15:33:41
【问题描述】:
我有这个列表视图
<ListView x:Name="LocationsListView" ItemsSource="{Binding ListOfFuel}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<StackLayout>
<Button CommandParameter="{Binding Id}" Clicked="Button_Clicked"></Button>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
通过事件背后的代码,我想获取作为 ItemsSource 列表一部分的 CommandParameter,即 Id 值。
我正在这样做:
private void Button_Clicked(object sender, EventArgs e)
{
Button btn = (Button)sender;
int Idvalue = btn.Id;
}
使用这种方法,应用程序抱怨按钮 Id 是 guid 值,但在列表中我的 Id 是整数,所以我假设 Id 是按钮本身的某种标识,而不是来自物品来源。
在按钮单击列表视图 ID 或该列表中的某些其他属性时,我有哪些选择?
【问题讨论】:
-
问题是
CommandParamter用于Commands,而您正在使用Clicked事件处理程序。你可以查看这个帖子:stackoverflow.com/a/50912352/10608418。了解如何在事件处理程序中提取CommandParameter的值。但在我看来,更简洁的方法是使用Command而不是Clicked事件。
标签: xamarin xamarin.forms