c# - 如何将此 Swift 函数转换为 Xamarin.iOS/C#

标签 c# swift xamarin

我现在正在做一个练习,想将此 Swift 函数转换为 Xamarin.iOS/C#。我会继续努力,但如果有人能提供一些帮助,那就太好了。

func setCollectionViewDataSourceDelegate
    <D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>>
    (dataSourceDelegate: D, forRow row: Int) {

    collectionView.delegate = dataSourceDelegate
    collectionView.dataSource = dataSourceDelegate
    collectionView.tag = row
    collectionView.reloadData()
}

我不知道如何将 Swift 中的方法签名转换为 C#

这个签名让我难住了妈妈。是:

<D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>>

上下文 - 表格 View 的每一行都包含一个水平滚动的 Collection View 。通过 willDisplayCell 为 tableview 中的每一行调用上面的函数。例如:

override func tableView(tableView: UITableView, willDisplayCell cell:UITableViewCell, 
forRowAtIndexPath indexPath: NSIndexPath) {
    //code..

    tableViewCell.setCollectionViewDataSourceDelegate(self, forRow: indexPath.row)

}

感谢@Alexey。为需要此信息的其他人进行更新。放置在自定义单元类中的此方法效果很好(我使用了 UICollectionViewDelegate/Datasource 可用的接口(interface)):

    public void SetCollectionViewDataSourceDelegate<T>(T dataSourceDelegate, int row) where T : IUICollectionViewDelegate, IUICollectionViewDataSource  
    {
        collectionView.Delegate = dataSourceDelegate;
        collectionView.DataSource = dataSourceDelegate;
        collectionView.Tag = row;
        collectionView.ReloadData ();
    }

最佳答案

void setCollectionViewDataSourceDelegate<D>(
D dataSourceDelegate, 
int row)
where D : UICollectionViewDataSource, UICollectionViewDelegate`

不过,我不知道 Xamarin Forms 中 UICollectionViewDataSource、UICollectionViewDelegate 类型的等效项。它们应该是某种接口(interface)。​

关于c# - 如何将此 Swift 函数转换为 Xamarin.iOS/C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194179/

相关文章:

c# - 带有代码的错误模板的文本框

C# 字符串拆分和合并

swift - NSString initWithBytes 使用 swift

ios - 降级部署目标后为"failed to emit precompiled header"

opengl - Xamarin Android 播放器 : OpenGL server is unreachable

c# - 是否可以编写使用 xamarin 表单(UI)和 Unity(3D 部分)开发的非游戏跨平台 3D 可视化移动应用程序?

c# - Xamarin。当前上下文中不存在名称“authorEntry”

c# - 更新 mongodb 文档中的特定字段

c# - Mimick C++在C#中使用 union 嵌套结构

ios - 真机调试时出现错误(libswiftCore)