コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: Issue1549.cs プロジェクト: Costo/Xamarin.Forms
		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);

		}