diff options
Diffstat (limited to 'Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ImageCellListPage.cs')
-rw-r--r-- | Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ImageCellListPage.cs | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ImageCellListPage.cs b/Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ImageCellListPage.cs new file mode 100644 index 00000000..1f58a339 --- /dev/null +++ b/Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ImageCellListPage.cs @@ -0,0 +1,121 @@ +using System; +using System.Linq; +using System.Collections.Generic; + +namespace Xamarin.Forms.Controls +{ + [Preserve (AllMembers = true)] + public class ImageCellTest { + public object Text { get; set; } + public object TextColor { get; set; } + public object Detail { get; set; } + public object DetailColor { get; set; } + public object Image { get; set; } + } + + public class ImageCellListPage : ContentPage + { + + public ImageCellListPage () + { + Title = "ImageCell List Gallery - Legacy"; + + Device.OnPlatform (iOS: () => { + if (Device.Idiom == TargetIdiom.Tablet) { + Padding = new Thickness (0, 0, 0, 60); + } + }); + + var dataTemplate = new DataTemplate (typeof (ImageCell)); + var stringToImageSourceConverter = new GenericValueConverter ( + obj => new FileImageSource { + File = (string) obj + } + ); + + dataTemplate.SetBinding (TextCell.TextProperty, new Binding ("Text")); + dataTemplate.SetBinding (TextCell.TextColorProperty, new Binding ("TextColor")); + dataTemplate.SetBinding (TextCell.DetailProperty, new Binding ("Detail")); + dataTemplate.SetBinding (TextCell.DetailColorProperty, new Binding ("DetailColor")); + dataTemplate.SetBinding (ImageCell.ImageSourceProperty, new Binding ("Image", converter: stringToImageSourceConverter)); + + Random rand = new Random(250); + + var albums = new [] { + "crimsonsmall.jpg", + "oasissmall.jpg", + "cover1small.jpg" + }; + + var label = new Label { Text = "I have not been selected" }; + + var listView = new ListView { + AutomationId = "ImageCellListView", + ItemsSource = Enumerable.Range (0, 100).Select (i => new ImageCellTest { + Text = "Text " + i, + TextColor = i % 2 == 0 ? Color.Red : Color.Blue, + Detail = "Detail " + i, + DetailColor = i % 2 == 0 ? Color.Red : Color.Blue, + Image = albums[rand.Next(0,3)] + }), + ItemTemplate = dataTemplate + }; + + listView.ItemSelected += (sender, args) => label.Text = "I was selected"; + + Content = new StackLayout { Children = { label, listView } }; + + } + } + + public class UrlImageCellListPage : ContentPage + { + public UrlImageCellListPage() + { + Device.OnPlatform (iOS: () => { + if (Device.Idiom == TargetIdiom.Tablet) { + Padding = new Thickness (0, 0, 0, 60); + } + }); + + var dataTemplate = new DataTemplate (typeof (ImageCell)); + var stringToImageSourceConverter = new GenericValueConverter ( + obj => new UriImageSource() { + Uri = new Uri ((string) obj) + }); + + dataTemplate.SetBinding (TextCell.TextProperty, new Binding ("Text")); + dataTemplate.SetBinding (TextCell.TextColorProperty, new Binding ("TextColor")); + dataTemplate.SetBinding (TextCell.DetailProperty, new Binding ("Detail")); + dataTemplate.SetBinding (TextCell.DetailColorProperty, new Binding ("DetailColor")); + dataTemplate.SetBinding (ImageCell.ImageSourceProperty, + new Binding ("Image", converter: stringToImageSourceConverter)); + + var albums = new List<string> (); + for (int i = 0; i < 30; i++) { + albums.Add (string.Format ("http://cdn.instructables.com/FCP/9TOJ/GCJ0ZQV5/FCP9TOJGCJ0ZQV5.MEDIUM.jpg?ticks={0}",i )); + } + + + var random = new Random(); + var label = new Label { Text = "I have not been selected" }; + + var listView = new ListView { + AutomationId = "ImageUrlCellListView", + ItemsSource = Enumerable.Range (0, 300).Select (i => new ImageCellTest { + Text = "Text " + i, + TextColor = i % 2 == 0 ? Color.Red : Color.Blue, + Detail = "Detail " + i, + DetailColor = i % 2 == 0 ? Color.Red : Color.Blue, + Image = albums [random.Next (0, albums.Count - 1)] + }), + ItemTemplate = dataTemplate + }; + + listView.ItemSelected += (sender, args) => label.Text = "I was selected"; + + Content = new StackLayout { Children = { label, listView } }; + + } + } +}
\ No newline at end of file |