diff options
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2248.cs')
-rw-r--r-- | Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2248.cs | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2248.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2248.cs new file mode 100644 index 00000000..3d224f65 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2248.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xamarin.Forms.CustomAttributes; + +namespace Xamarin.Forms.Controls.TestCasesPages +{ + [Preserve (AllMembers=true)] + [Issue (IssueTracker.Github, 2248, "ListView.ScrollTo crashes app", PlatformAffected.WinPhone)] + public class Issue2248 : ContentPage + { + ObservableCollection<Item> _items; + + public Issue2248() + { + _items = new ObservableCollection<Item>() + { + new Item() {Id = 1, Name = "First"}, + new Item() {Id = 2, Name = "Second"}, + new Item() {Id = 3, Name = "Third"}, + new Item() {Id = 4, Name = "Fourth"}, + new Item() {Id = 5, Name = "Fifth"} + }; + + + var listView = new ListView() + { + ItemsSource = _items, + ItemTemplate = new DataTemplate(typeof (ItemCell)) + }; + + Content = listView; + } + + public void RemoveItemFromCollection(Item item) + { + _items.Remove(item); + } + public class Item + { + public int Id { get; set; } + public string Name { get; set; } + } + + public class ItemCell : ViewCell + { + public ItemCell() + { + var nameLabel = new Label(); + nameLabel.SetBinding(Label.TextProperty, "Name"); + nameLabel.GestureRecognizers.Add(new TapGestureRecognizer() + { + Command = new Command(DeleteItem), + NumberOfTapsRequired = 1 + }); + + View = nameLabel; + } + + void DeleteItem() + { + var parent = Parent.Parent as Issue2248; + + if (parent != null) + { + parent.RemoveItemFromCollection((Item) BindingContext); + } + } + } + } +} |