public void ResourcesInNonXFBaseClassesAreFound() { var xaml = @"<local:BaseView xmlns=""http://xamarin.com/schemas/2014/forms"" xmlns:x=""http://schemas.microsoft.com/winfx/2009/xaml"" xmlns:local=""clr-namespace:Xamarin.Forms.Xaml.UnitTests;assembly=Xamarin.Forms.Xaml.UnitTests"" Padding=""0,40,0,0""> <local:BaseView.Resources> <ResourceDictionary> <local:InvertBoolenConverter x:Key=""cnvInvert""></local:InvertBoolenConverter> </ResourceDictionary> </local:BaseView.Resources> <local:BaseView.Content> <ListView x:Name=""lst"" VerticalOptions=""FillAndExpand"" HorizontalOptions=""FillAndExpand"" ItemsSource=""{Binding Items}"" > <ListView.ItemTemplate > <DataTemplate> <ViewCell > <ViewCell.View> <Grid VerticalOptions=""FillAndExpand"" HorizontalOptions=""FillAndExpand"" > <Label IsVisible=""{Binding IsLocked}"" Text=""Show Is Locked"" /> <Label IsVisible=""{Binding IsLocked, Converter={StaticResource cnvInvert}}"" Text=""Show Is Not locked"" /> </Grid> </ViewCell.View> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> </local:BaseView.Content> </local:BaseView>"; var page = new Issue1549Page().LoadFromXaml(xaml); var lst = page.FindByName <ListView>("lst"); ObservableCollection <Item> items; lst.BindingContext = new { Items = items = new ObservableCollection <Item> { new Item { IsLocked = true }, new Item { IsLocked = false }, new Item { IsLocked = true }, new Item { IsLocked = true }, }, }; var cell0 = (ViewCell)lst.TemplatedItems.GetOrCreateContent(0, items[0]); var cell1 = (ViewCell)lst.TemplatedItems.GetOrCreateContent(1, items[1]); var cell2 = (ViewCell)lst.TemplatedItems.GetOrCreateContent(2, items[2]); var cell3 = (ViewCell)lst.TemplatedItems.GetOrCreateContent(3, items[3]); var label00 = (cell0.View as Grid).Children[0] as Label; var label01 = (cell0.View as Grid).Children[1] as Label; Assert.AreEqual("Show Is Locked", label00.Text); Assert.AreEqual("Show Is Not locked", label01.Text); Assert.AreEqual(true, label00.IsVisible); Assert.AreEqual(false, label01.IsVisible); Assert.AreEqual(4, InvertBoolenConverter.count); }
public void ResourcesInNonXFBaseClassesAreFound () { var xaml = @"<local:BaseView xmlns=""http://xamarin.com/schemas/2014/forms"" xmlns:x=""http://schemas.microsoft.com/winfx/2009/xaml"" xmlns:local=""clr-namespace:Xamarin.Forms.Xaml.UnitTests;assembly=Xamarin.Forms.Xaml.UnitTests"" Padding=""0,40,0,0""> <local:BaseView.Resources> <ResourceDictionary> <local:InvertBoolenConverter x:Key=""cnvInvert""></local:InvertBoolenConverter> </ResourceDictionary> </local:BaseView.Resources> <local:BaseView.Content> <ListView x:Name=""lst"" VerticalOptions=""FillAndExpand"" HorizontalOptions=""FillAndExpand"" ItemsSource=""{Binding Items}"" > <ListView.ItemTemplate > <DataTemplate> <ViewCell > <ViewCell.View> <Grid VerticalOptions=""FillAndExpand"" HorizontalOptions=""FillAndExpand"" > <Label IsVisible=""{Binding IsLocked}"" Text=""Show Is Locked"" /> <Label IsVisible=""{Binding IsLocked, Converter={StaticResource cnvInvert}}"" Text=""Show Is Not locked"" /> </Grid> </ViewCell.View> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> </local:BaseView.Content> </local:BaseView>"; var page = new Issue1549Page ().LoadFromXaml (xaml); var lst = page.FindByName<ListView> ("lst"); ObservableCollection<Item> items; lst.BindingContext = new { Items = items = new ObservableCollection<Item> { new Item { IsLocked = true}, new Item { IsLocked = false}, new Item { IsLocked = true}, new Item { IsLocked = true}, }, }; var cell0 = (ViewCell)lst.TemplatedItems.GetOrCreateContent (0, items [0]); var cell1 = (ViewCell)lst.TemplatedItems.GetOrCreateContent (1, items [1]); var cell2 = (ViewCell)lst.TemplatedItems.GetOrCreateContent (2, items [2]); var cell3 = (ViewCell)lst.TemplatedItems.GetOrCreateContent (3, items [3]); var label00 = (cell0.View as Grid).Children [0] as Label; var label01 = (cell0.View as Grid).Children [1] as Label; Assert.AreEqual ("Show Is Locked", label00.Text); Assert.AreEqual ("Show Is Not locked", label01.Text); Assert.AreEqual (true, label00.IsVisible); Assert.AreEqual (false, label01.IsVisible); Assert.AreEqual (4, InvertBoolenConverter.count); }