[iOS] ViewCellRenderer did not set RealCellProperty

In the iOS ViewCellRenderer, GetRealCell in ViewCellPropertyChanged was returning null and passing it to UpdateIsEnabled. SetRealCell was never being called in ViewCellRenderer and the RealCellProperty was never being set.
This commit is contained in:
Paul DiPietro 2016-04-06 22:53:52 -07:00 коммит произвёл Jason Smith
Родитель ca9b08deab
Коммит e3191821ba
3 изменённых файлов: 65 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,62 @@
using System;
using Xamarin.Forms.CustomAttributes;
#if UITEST
using Xamarin.UITest;
using Xamarin.UITest.iOS;
using Xamarin.UITest.Queries;
using NUnit.Framework;
#endif
namespace Xamarin.Forms.Controls.Issues
{
[Preserve(AllMembers = true)]
[Issue(IssueTracker.Bugzilla, 36955, "[iOS] ViewCellRenderer.UpdateIsEnabled referencing null object", PlatformAffected.iOS)]
public class Bugzilla36955 : TestContentPage
{
protected override void Init()
{
var ts = new TableSection();
var tr = new TableRoot { ts };
var tv = new TableView(tr);
var sc = new SwitchCell
{
Text = "Toggle switch; nothing should crash"
};
var button = new Button();
button.SetBinding(Button.TextProperty, new Binding("On", source: sc));
var vc = new ViewCell
{
View = button
};
vc.SetBinding(IsEnabledProperty, new Binding("On", source: sc));
ts.Add(sc);
ts.Add(vc);
Content = tv;
}
#if UITEST
[Test]
public void Bugzilla36955Test()
{
if (RunningApp is iOSApp)
{
AppResult[] buttonFalse = RunningApp.Query(q => q.Button().Text("False"));
Assert.AreEqual(buttonFalse.Length == 1, true);
RunningApp.Tap(q => q.Class("Switch"));
AppResult[] buttonTrue = RunningApp.Query(q => q.Button().Text("True"));
Assert.AreEqual(buttonTrue.Length == 1, true);
}
else
{
Assert.Inconclusive("Test is only run on iOS.");
}
}
#endif
}
}

Просмотреть файл

@ -68,6 +68,7 @@
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla36649.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla36559.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla36171.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla36955.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla37462.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla37841.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla37863.cs" />

Просмотреть файл

@ -35,6 +35,8 @@ namespace Xamarin.Forms.Platform.iOS
viewCell.PropertyChanged += ViewCellPropertyChanged;
cell.ViewCell = viewCell;
SetRealCell(item, cell);
WireUpForceUpdateSizeRequested(item, cell, tv);
UpdateBackground(cell, item);