diff options
Diffstat (limited to 'Xamarin.Forms.Platform.MacOS/Cells/ImageCellRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.MacOS/Cells/ImageCellRenderer.cs | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/Xamarin.Forms.Platform.MacOS/Cells/ImageCellRenderer.cs b/Xamarin.Forms.Platform.MacOS/Cells/ImageCellRenderer.cs deleted file mode 100644 index 8bd76772..00000000 --- a/Xamarin.Forms.Platform.MacOS/Cells/ImageCellRenderer.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System.ComponentModel; -using System.Threading.Tasks; -using AppKit; -using Foundation; - -namespace Xamarin.Forms.Platform.MacOS -{ - public class ImageCellRenderer : TextCellRenderer - { - public override NSView GetCell(Cell item, NSView reusableView, NSTableView tv) - { - var tvc = reusableView as CellNSView ?? new CellNSView(NSTableViewCellStyle.ImageSubtitle); - - var result = (CellNSView)base.GetCell(item, tvc, tv); - - var imageCell = (ImageCell)item; - - WireUpForceUpdateSizeRequested(item, result, tv); - -#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed - SetImage(imageCell, result); -#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed - - return result; - } - - protected override async void HandlePropertyChanged(object sender, PropertyChangedEventArgs args) - { - var tvc = (CellNSView)sender; - var imageCell = (ImageCell)tvc.Cell; - - base.HandlePropertyChanged(sender, args); - - if (args.PropertyName == ImageCell.ImageSourceProperty.PropertyName) - await SetImage(imageCell, tvc); - } - - static async Task SetImage(ImageCell cell, CellNSView target) - { - var source = cell.ImageSource; - - target.ImageView.Image = null; - - IImageSourceHandler handler; - - if (source != null && (handler = Registrar.Registered.GetHandler<IImageSourceHandler>(source.GetType())) != null) - { - NSImage uiimage; - try - { - uiimage = await handler.LoadImageAsync(source).ConfigureAwait(false); - } - catch (TaskCanceledException) - { - uiimage = null; - } - - NSRunLoop.Main.BeginInvokeOnMainThread(() => - { - target.ImageView.Image = uiimage; - target.NeedsLayout = true; - }); - } - else - target.ImageView.Image = null; - } - } -}
\ No newline at end of file |