зеркало из https://github.com/DeGsoft/maui-linux.git
[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:
Родитель
ca9b08deab
Коммит
e3191821ba
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче