【发布时间】:2021-01-26 23:47:39
【问题描述】:
我有一个CollectionView,每个项目包含 2 个按钮。编辑和删除。我想在按下按钮时删除或编辑项目。但问题是当按下内部按钮时,如何获取该特定项目的相应对象?因为选择模式设置为无,按下按钮也不会选择项目。所以我无法通过以下方式访问该项目 -
(Model)collView.SelectedItem.Constructor.... (//Do something where x:Name = collView).
这是我尝试过的 -
<CollectionView x:Name="RequestCollectionView"
SelectionMode="None"
Margin="0,35,0,0">
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="users:Student">
<StackLayout>
<Label x:Name="studentName"
Text="{Binding Name}"
Margin="0,25,0,0"/>
<Button x:Name="acceptBtn"
Clicked="AcceptBtn_Clicked"
HeightRequest="24"
WidthRequest="24"/>
<Button x:Name="rejectBtn"
Clicked="RejectBtn_Clicked"
HeightRequest="24"
WidthRequest="24"
Margin="0,0,15,0"/>
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
我尝试了以下方法,但没有成功 ->
private void AcceptBtn_Clicked(object sender, EventArgs e)
{
// Here I get NullRef Exception
testText.Text =
((Student)RequestCollectionView.SelectedItem).Name;
// var t = (Student)sender; //Invalid Cast
}
如果标题不合适,请建议或编辑。我找不到这个问题的适当标题。原谅我。
【问题讨论】:
标签: c# xaml xamarin.forms binding collectionview