71 строка
2.5 KiB
C#
71 строка
2.5 KiB
C#
using System;
|
|
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using Xamarin.Forms.CustomAttributes;
|
|
using Xamarin.Forms.Internals;
|
|
#if UITEST
|
|
using Xamarin.UITest;
|
|
using NUnit.Framework;
|
|
#endif
|
|
|
|
namespace Xamarin.Forms.Controls.Issues
|
|
{
|
|
[Preserve (AllMembers = true)]
|
|
[Issue (IssueTracker.Bugzilla, 52700, "[iOS] Recycled cell should respect selection style set to none", PlatformAffected.iOS)]
|
|
public class Bugzilla52700 : TestContentPage // or TestMasterDetailPage, etc ...
|
|
{
|
|
const string Instructions = "On iOS, all three of the following ListViews should not change background color upon selection. If the background of the row changes color, this test fails.";
|
|
const string ListView1 = "Custom Cell with Context Actions";
|
|
const string ListView2 = "Custom Cell + RecycleElement";
|
|
const string ListView3 = "Custom Cell + RetainElement";
|
|
|
|
public class NoSelectionViewCell : ViewCell
|
|
{
|
|
public Label label { get; set; }
|
|
|
|
public NoSelectionViewCell ()
|
|
{
|
|
label = new Label ();
|
|
label.SetBinding (Label.TextProperty, ".");
|
|
View = label;
|
|
}
|
|
}
|
|
|
|
public class NoSelectionViewCellWithContextActions : NoSelectionViewCell
|
|
{
|
|
public NoSelectionViewCellWithContextActions ()
|
|
{
|
|
label = new Label ();
|
|
label.SetBinding (Label.TextProperty, ".");
|
|
View = label;
|
|
|
|
var delete = new MenuItem { Text = "Delete" };
|
|
ContextActions.Add (delete);
|
|
}
|
|
}
|
|
|
|
protected override void Init ()
|
|
{
|
|
var label = new Label { Text = Instructions };
|
|
var selectionLabel = new Label { Text = "<< THIS changes when row selected >>" };
|
|
var listView = new ListView { ItemTemplate = new DataTemplate (typeof (NoSelectionViewCellWithContextActions)), ItemsSource = Enumerable.Range (0, 9), Header = ListView1 };
|
|
var listView2 = new ListView (ListViewCachingStrategy.RecycleElement) { ItemTemplate = new DataTemplate (typeof (NoSelectionViewCell)), ItemsSource = Enumerable.Range (10, 19), Header = ListView2 };
|
|
var listView3 = new ListView { ItemTemplate = new DataTemplate (typeof (NoSelectionViewCell)), ItemsSource = Enumerable.Range (20, 29), Header = ListView3 };
|
|
|
|
listView.ItemSelected += (sender, e) => {
|
|
selectionLabel.Text = DateTime.Now.ToLocalTime ().ToString ();
|
|
};
|
|
|
|
listView2.ItemSelected += (sender, e) => {
|
|
selectionLabel.Text = DateTime.Now.ToLocalTime ().ToString ();
|
|
};
|
|
|
|
listView3.ItemSelected += (sender, e) => {
|
|
selectionLabel.Text = DateTime.Now.ToLocalTime ().ToString ();
|
|
};
|
|
|
|
Content = new StackLayout { Children = { label, selectionLabel, listView, listView2, listView3 } };
|
|
}
|
|
}
|
|
}
|