我们正在使用xamarin表单应用。在主页上,我们有一个新闻列表,点击任何有关新闻详情的新闻。
现在我们要在主页的每一行添加一个共享图标,以便点击它我们可以打开一个弹出对话框。
我们在处理现有的ios实施时遇到了问题。
我们有以下实施:
我们正在使用collectionview,在为collectionview加载单元格时,我们正在使用在C#中开发的customcell(xamarin表单项目)
所以collectionview的customcell是类型的, ItemCustomcell:Fastgridcell
并返回一个RelativeLayout,其中包含一个Button和一个Label。
现在我们面临的问题是,如何处理单元格内任何项目的事件。
例如,我们在自定义单元格的常用模板中添加了一个按钮,那么我们如何才能获得此按钮的点击事件?
如果我需要提供更多详细信息,请与我们联系。
此致 Koushik Ganguly
答案 0 :(得分:0)
首先在Fastgridcell
中定义一个事件:
public delegate void BtnDidClickDelegate(MyCollectionViewCell cell);
public event BtnDidClickDelegate BtnDidClickEvent;
点击Fastgridcell
中的按钮时会触发此事件:
partial void BtnClick(UIKit.UIButton sender)
{
BtnDidClickEvent(this);
}
然后在ViewController中注册此事件,放置您的collectionview:
public UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
{
MyCollectionViewCell cell = collectionView.DequeueReusableCell("Cell", indexPath) as MyCollectionViewCell;
cell.BtnDidClickEvent += Cell_BtnDidClickEvent;
return cell;
}
private void Cell_BtnDidClickEvent(MyCollectionViewCell cell)
{
NSIndexPath selectedIndexPath = MyCollection.IndexPathForCell(cell);
// In this way, we can get the indexpath which cell's button clicks
}
如果您想将此参数传输到表单,请使用事件或MessagingCenter来实现此目的。