gpt4 book ai didi

c# - 当按下按钮时如何从 Collection View 中获取相应的对象?

转载 作者:行者123 更新时间:2023-12-03 08:34:33 26 4
gpt4 key购买 nike

我有一个CollectionView,每个项目包含 2 个按钮。编辑和删除。我想在按下按钮时删除或编辑该项目。但问题是当按下内部按钮时如何获取该特定项目的相应对象?因为选择模式设置为无,按下按钮也不会选择该项目。所以我无法通过以下方式访问该项目 -(Model)collView.SelectedItem.Constructor...(//在 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
}

If the title is not appropiate, suggest or edit please. I couldn't find the appropiate title for this question. Pardon me.

最佳答案

使用BindingContext

private void AcceptBtn_Clicked(object sender, EventArgs e)
{
var btn = (Button) sender;
var student = (Student)btn.BindingContext;

testText.Text = student.Name;

}

关于c# - 当按下按钮时如何从 Collection View 中获取相应的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64321657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com