public void ComposeCell (DataItemCollectionViewCell cell, DataItem dataItem) { var operationQueue = OperationQueueForCell (cell); operationQueue.CancelAllOperations (); cell.RepresentedDataItem = dataItem; cell.Label.Text = dataItem.Title; cell.ImageView.Alpha = 1f; cell.ImageView.Image = (UIImage)processedImageCache.ObjectForKey ((NSString)dataItem.Identifier); if (cell.ImageView.Image != null) return; var processImageOperation = new NSBlockOperation (); processImageOperation.AddExecutionBlock (() => { if (processImageOperation.IsCancelled) return; UIImage image = null; DispatchQueue.MainQueue.DispatchSync (() => { image = ProcessImageNamed (dataItem.ImageName); }); if (image == null) return; processedImageCache.SetObjectforKey (image, (NSString)dataItem.Identifier); NSOperationQueue.MainQueue.AddOperation (() => { if (cell.RepresentedDataItem == null) return; cell.ImageView.Alpha = 0f; cell.ImageView.Image = image; UIView.Animate (0.25, () => cell.ImageView.Alpha = 1f); }); }); operationQueue.AddOperation (processImageOperation); }
public void ConfigureWithDataItem (DataItem dataItem) { DataItem = dataItem; }
public void ConfigureWithDataItems (DataItem[] dataItems) { this.dataItems = dataItems; CollectionView.ReloadData (); }