diff options
Diffstat (limited to 'Xamarin.Forms.Platform.Android/Cells/ImageCellRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Android/Cells/ImageCellRenderer.cs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.Android/Cells/ImageCellRenderer.cs b/Xamarin.Forms.Platform.Android/Cells/ImageCellRenderer.cs new file mode 100644 index 00000000..62815ed6 --- /dev/null +++ b/Xamarin.Forms.Platform.Android/Cells/ImageCellRenderer.cs @@ -0,0 +1,37 @@ +using System.ComponentModel; +using Android.Content; +using Android.Views; + +namespace Xamarin.Forms.Platform.Android +{ + public class ImageCellRenderer : TextCellRenderer + { + protected override global::Android.Views.View GetCellCore(Cell item, global::Android.Views.View convertView, ViewGroup parent, Context context) + { + var result = (BaseCellView)base.GetCellCore(item, convertView, parent, context); + + UpdateImage(); + + return result; + } + + protected override void OnCellPropertyChanged(object sender, PropertyChangedEventArgs args) + { + base.OnCellPropertyChanged(sender, args); + if (args.PropertyName == ImageCell.ImageSourceProperty.PropertyName) + UpdateImage(); + } + + void UpdateImage() + { + var cell = (ImageCell)Cell; + if (cell.ImageSource != null) + { + View.SetImageVisible(true); + View.SetImageSource(cell.ImageSource); + } + else + View.SetImageVisible(false); + } + } +}
\ No newline at end of file |