Xaml 如何在CollectionView中存储值
我有一个Xaml 如何在CollectionView中存储值,xaml,xamarin,xamarin.forms,binding,Xaml,Xamarin,Xamarin.forms,Binding,我有一个CollectionView列表,希望将每个项目设置为一个单独的值,单击该值时可以获得该值 但似乎没有这样的财产该怎么办 <CollectionView.ItemTemplate> <DataTemplate> <Grid Padding="5,5" HeightRequest="55"> <Grid.C
CollectionView
列表,希望将每个项目设置为一个单独的值,单击该值时可以获得该值
但似乎没有这样的财产该怎么办
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="5,5" HeightRequest="55">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.134*" />
<ColumnDefinition Width="0.489*" />
<ColumnDefinition Width="0.256*" />
</Grid.ColumnDefinitions>
<Grid.GestureRecognizers>
<TapGestureRecognizer CommandParameter="{Binding Id}" Tapped="Handle_Tapped" />
</Grid.GestureRecognizers>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
我无法获取参数,请帮助。当您单击某个项目时,默认情况下,事件参数会获取选定的数据,因此您不需要id即可获取,您只需执行以下操作:
private void Handle_Tapped(object sender, System.EventArgs e)
{
var clickedData=(e as ItemTappedEventArgs).Item as YourDataType;
}
其中,
YourDataType
是绑定到CollectionView的类型 当您单击某个项目时,默认情况下,事件参数会获取所选数据,因此您不需要id即可获取所需的全部信息,如下所示:
private void Handle_Tapped(object sender, System.EventArgs e)
{
var clickedData=(e as ItemTappedEventArgs).Item as YourDataType;
}
其中,YourDataType
是绑定到CollectionView的类型 试试这个
private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
Grid h = sender as Grid;
var m = h.BindingContext as YourModelType;
}
试试这个
private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
Grid h = sender as Grid;
var m = h.BindingContext as YourModelType;
}
CollectionView
提供了一个SelectedItem
bindable属性。您可以绑定到此属性,并在设置视图模型时在视图模型中执行所需的任何操作
如果您想继续使用事件,CollectionView
还提供了一个SelectionChanged
事件,该事件将在每次SelectedItem
更改时触发,并将每次作为参数的一部分传递所选项
这两种方法中的任何一种都不需要为CollectionView
CollectionView
中的每个视图单元格使用点击手势识别器,该视图提供了一个SelectedItem
可绑定属性。您可以绑定到此属性,并在设置视图模型时在视图模型中执行所需的任何操作
如果您想继续使用事件,CollectionView
还提供了一个SelectionChanged
事件,该事件将在每次SelectedItem
更改时触发,并将每次作为参数的一部分传递所选项
这两种方法中的任何一种都不需要为CollectionView
中的每个视图单元安装点击手势识别器,如果您能向我展示您迄今为止所做的工作,我可以给您一个快速的提示solution@G.hakim请看代码。也许如果你能告诉我你到目前为止做了什么,我可以给你一个快速的提示solution@G.hakim请看代码。发送者是一个网格,这无关紧要。我不是在铸造发送者!作为您的代码,有一个异常对象引用未设置为对象的实例。您能否告诉我调试click Event时您得到了什么类型的事件参数?当我看到您提供的代码时,我自己找到了正确的代码。谢谢。@G.hakim发件人是一个网格,这无关紧要。我不是在铸造发件人!作为您的代码,有一个异常对象引用未设置为对象的实例。您能告诉我调试click Event时得到的事件参数类型吗?当我看到您提供的代码时,我自己找到了正确的代码。谢谢。@G.hakim