Xamarin iOS UICollectionView.CellRegistration 与泛型,它在哪里?

问题描述

我一直试图找出 UICollectionView.CellRegistration 的确切位置。

我可以看到有一个 UICollectionViewCellRegistration.GetRegistration,但我不确定如何调用通用版本或至少为 GetRegistration 提供一个 ItemType。

解决方法

引自官方docs

   public class UICollectionViewCellRegistration : Foundation.NSObject,Foundation.INSObjectProtocol,ObjCRuntime.INativeObject,System.IDisposable,System.IEquatable<Foundation.NSObject> {
        // constructors
        protected UICollectionViewCellRegistration (Foundation.NSObjectFlag t);
        protected UICollectionViewCellRegistration (IntPtr handle);
        // properties
        public virtual ObjCRuntime.Class CellClass { get; }
        public virtual UINib CellNib { get; }
        public System.Type CellType { get; }
        public override IntPtr ClassHandle { get; }
        public virtual UICollectionViewCellRegistrationConfigurationHandler ConfigurationHandler { get; }
        // methods
        public static UICollectionViewCellRegistration GetRegistration (ObjCRuntime.Class cellClass,UICollectionViewCellRegistrationConfigurationHandler configurationHandler);
        public static UICollectionViewCellRegistration GetRegistration (System.Type cellType,UICollectionViewCellRegistrationConfigurationHandler configurationHandler);
        public static UICollectionViewCellRegistration GetRegistration (UINib cellNib,UICollectionViewCellRegistrationConfigurationHandler configurationHandler);
    }

public sealed delegate UICollectionViewCellRegistrationConfigurationHandler : System.MulticastDelegate,System.ICloneable,System.Runtime.Serialization.ISerializable {
    // constructors
    public UICollectionViewCellRegistrationConfigurationHandler (object object,IntPtr method);
    // methods
    public virtual System.IAsyncResult BeginInvoke (UICollectionViewCell cell,Foundation.NSIndexPath indexPath,Foundation.NSObject item,System.AsyncCallback callback,object object);
    public virtual void EndInvoke (System.IAsyncResult result);
    public virtual void Invoke (UICollectionViewCell cell,Foundation.NSObject item);
}

例如:

        var c = UICollectionViewCellRegistration.GetRegistration(typeof(UICollectionViewListCell),(cell,index,item)=> { 
        
        });