summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ImageCellListPage.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ImageCellListPage.cs')
-rw-r--r--Xamarin.Forms.Controls/GalleryPages/CellsGalleries/ImageCellListPage.cs121
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