Esempio n. 1
0
        public void BlockBinding()
        {
            var dataSet = DataSetMock.ProductCategories(1);
            var _       = dataSet._;
            BlockBinding <Label>     blockLabel  = null;
            BlockBinding <TextBlock> blockHeader = null;
            var elementManager = dataSet.CreateElementManager(builder =>
            {
                blockHeader = _.AsBlockHeader();
                blockLabel  = _.Name.AsBlockLabel(blockHeader);
                builder.Layout(Orientation.Vertical, 2)
                .GridColumns("100", "100", "100").GridRows("100").RowRange(2, 0, 2, 0)
                .AddBinding(0, 0, blockLabel)
                .AddBinding(1, 0, blockHeader);
            });

            Assert.IsNull(blockLabel.SettingUpElement);
            Assert.IsNull(blockHeader.SettingUpElement);

            var currentRow = elementManager.Rows[0];

            Assert.AreEqual(_.Name.DisplayName, blockLabel[0].Content);
            Assert.AreEqual("0", blockHeader[0].Text);
            Assert.AreEqual(blockHeader[0], blockLabel[0].Target);
        }
        public void BlockCompositeBinding_XAML()
        {
            var dataSet = DataSetMock.ProductCategories(1);
            var _       = dataSet._;
            BlockBinding <Label>             blockLabel  = null;
            BlockBinding <TextBlock>         blockHeader = null;
            BlockCompositeBinding <XamlPane> pane        = null;
            var elementManager = dataSet.CreateElementManager(builder =>
            {
                blockHeader = _.AsBlockHeader();
                blockLabel  = _.Name.AsBlockLabel(blockHeader);
                pane        = new BlockCompositeBinding <XamlPane>().AddChild(blockLabel, v => v.Label).AddChild(blockHeader, v => v.TextBlock);
                builder.Layout(Orientation.Vertical, 2)
                .GridColumns("100", "100").GridRows("100").RowRange(1, 0, 1, 0)
                .AddBinding(0, 0, pane);
            });

            Assert.IsNull(blockLabel.SettingUpElement);
            Assert.IsNull(blockHeader.SettingUpElement);
            Assert.IsNull(pane.GetSettingUpElement());

            var currentRow = elementManager.Rows[0];

            Assert.AreEqual(pane[0].Children[0], blockLabel[0]);
            Assert.AreEqual(pane[0].Children[1], blockHeader[0]);
            Assert.AreEqual(_.Name.DisplayName, blockLabel[0].Content);
            Assert.AreEqual("0", blockHeader[0].Text);
            Assert.AreEqual(blockHeader[0], blockLabel[0].Target);
        }
        public void ScalarCompositeBinding()
        {
            var dataSet = DataSetMock.ProductCategories(1);
            var _       = dataSet._;
            ScalarBinding <Label>             label     = null;
            ScalarBinding <TextBlock>         textBlock = null;
            ScalarCompositeBinding <XamlPane> pane      = null;
            var elementManager = dataSet.CreateElementManager(builder =>
            {
                textBlock = _.Name.AsScalarTextBlock();
                label     = _.Name.AsScalarLabel(textBlock);
                pane      = new ScalarCompositeBinding <XamlPane>().AddChild(label, v => v.Label).AddChild(textBlock, v => v.TextBlock);
                builder.Layout(Orientation.Vertical, 0)
                .GridColumns("100").GridRows("100", "100")
                .AddBinding(0, 0, pane)
                .AddBinding(0, 1, _.Name.BindToTextBlock());
            });

            Assert.IsNull(label.GetSettingUpElement(0));
            Assert.IsNull(textBlock.GetSettingUpElement(0));

            Assert.AreEqual(1, label.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, label[0].Content);
            Assert.AreEqual(1, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(textBlock[0], label[0].Target);
        }
        public void RowCompositeBinding_XAML()
        {
            var dataSet = DataSetMock.ProductCategories(1);
            var _       = dataSet._;
            RowBinding <Label>             label     = null;
            RowBinding <TextBlock>         textBlock = null;
            RowCompositeBinding <XamlPane> pane      = null;
            var elementManager = dataSet.CreateElementManager(builder =>
            {
                textBlock = _.Name.BindToTextBlock();
                label     = _.Name.BindToLabel(textBlock);
                pane      = new RowCompositeBinding <XamlPane>().AddChild(label, v => v.Label).AddChild(textBlock, v => v.TextBlock);
                builder.GridRows("100").GridColumns("100").AddBinding(0, 0, pane);
            });

            Assert.IsNull(label.SettingUpElement);
            Assert.IsNull(textBlock.SettingUpElement);
            Assert.IsNull(pane.GetSettingUpElement());

            var currentRow = elementManager.Rows[0];

            Assert.AreEqual(pane[currentRow].Children[0], label[currentRow]);
            Assert.AreEqual(pane[currentRow].Children[1], textBlock[currentRow]);
            Assert.AreEqual(_.Name.DisplayName, label[currentRow].Content);
            Assert.AreEqual(currentRow.GetValue(_.Name), textBlock[currentRow].Text);
            Assert.AreEqual(textBlock[currentRow], label[currentRow].Target);
        }
Esempio n. 5
0
        public void RowBinding()
        {
            var dataSet = DataSetMock.ProductCategories(1);
            var _       = dataSet._;
            RowBinding <Label>     label     = null;
            RowBinding <TextBlock> textBlock = null;
            var elementManager = dataSet.CreateElementManager(builder =>
            {
                textBlock = _.Name.BindToTextBlock();
                label     = _.Name.BindToLabel(textBlock);
                builder.GridColumns("100", "100").GridRows("100")
                .AddBinding(0, 0, label)
                .AddBinding(1, 0, textBlock);
            });

            Assert.IsNull(label.SettingUpElement);
            Assert.IsNull(textBlock.SettingUpElement);

            var currentRow = elementManager.Rows[0];

            Assert.AreEqual(_.Name.DisplayName, label[currentRow].Content);
            Assert.AreEqual(currentRow.GetValue(_.Name), textBlock[currentRow].Text);
            Assert.AreEqual(textBlock[currentRow], label[currentRow].Target);
        }
Esempio n. 6
0
        public void ScalarBinding()
        {
            var dataSet = DataSetMock.ProductCategories(1);
            var _       = dataSet._;
            ScalarBinding <Label>     label     = null;
            ScalarBinding <TextBlock> textBlock = null;
            var elementManager = dataSet.CreateElementManager(builder =>
            {
                textBlock = _.Name.AsScalarTextBlock();
                label     = _.Name.AsScalarLabel(textBlock);
                builder.GridColumns("100", "100", "100").GridRows("100").RowRange(2, 0, 2, 0)
                .AddBinding(0, 0, label)
                .AddBinding(1, 0, textBlock);
            });

            Assert.IsNull(label.GetSettingUpElement(0));
            Assert.IsNull(textBlock.GetSettingUpElement(0));

            Assert.AreEqual(1, label.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, label[0].Content);
            Assert.AreEqual(1, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(textBlock[0], label[0].Target);
        }
Esempio n. 7
0
        public void ScalarBinding_flowable()
        {
            var dataSet = DataSetMock.ProductCategories(1);
            var _       = dataSet._;
            ScalarBinding <Label>     label     = null;
            ScalarBinding <TextBlock> textBlock = null;
            var elementManager = dataSet.CreateElementManager(builder =>
            {
                textBlock = _.Name.AsScalarTextBlock().RepeatWhenFlow();
                label     = _.Name.AsFlowRepeatableScalarLabel(textBlock);
                builder.Layout(Orientation.Vertical, 0)
                .GridColumns("100", "100").GridRows("100", "100")
                .AddBinding(0, 0, label)
                .AddBinding(0, 1, 1, 1, _.Name.BindToTextBlock())
                .AddBinding(1, 0, textBlock);
            });

            elementManager.FlowRepeatCount = 2;

            Assert.IsNull(label.GetSettingUpElement(0));
            Assert.IsNull(textBlock.GetSettingUpElement(0));

            Assert.AreEqual(2, label.FlowRepeatCount);
            Assert.AreEqual("0. " + _.Name.DisplayName, label[0].Content);
            Assert.AreEqual("1. " + _.Name.DisplayName, label[1].Content);
            Assert.AreEqual(0, label[0].GetScalarFlowIndex());
            Assert.AreEqual(1, label[1].GetScalarFlowIndex());
            Assert.AreEqual(2, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(_.Name.DisplayName, textBlock[1].Text);
            Assert.AreEqual(0, textBlock[0].GetScalarFlowIndex());
            Assert.AreEqual(1, textBlock[1].GetScalarFlowIndex());
            Assert.AreEqual(textBlock[0], label[0].Target);
            Assert.AreEqual(textBlock[1], label[1].Target);

            elementManager.FlowRepeatCount = 3;
            Assert.AreEqual(3, label.FlowRepeatCount);
            Assert.AreEqual("0. " + _.Name.DisplayName, label[0].Content);
            Assert.AreEqual("1. " + _.Name.DisplayName, label[1].Content);
            Assert.AreEqual("2. " + _.Name.DisplayName, label[2].Content);
            Assert.AreEqual(0, label[0].GetScalarFlowIndex());
            Assert.AreEqual(1, label[1].GetScalarFlowIndex());
            Assert.AreEqual(2, label[2].GetScalarFlowIndex());
            Assert.AreEqual(3, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(_.Name.DisplayName, textBlock[1].Text);
            Assert.AreEqual(_.Name.DisplayName, textBlock[2].Text);
            Assert.AreEqual(0, textBlock[0].GetScalarFlowIndex());
            Assert.AreEqual(1, textBlock[1].GetScalarFlowIndex());
            Assert.AreEqual(2, textBlock[2].GetScalarFlowIndex());
            Assert.AreEqual(textBlock[0], label[0].Target);
            Assert.AreEqual(textBlock[1], label[1].Target);
            Assert.AreEqual(textBlock[2], label[2].Target);

            elementManager.FlowRepeatCount = 2;
            Assert.AreEqual(2, label.FlowRepeatCount);
            Assert.AreEqual("0. " + _.Name.DisplayName, label[0].Content);
            Assert.AreEqual("1. " + _.Name.DisplayName, label[1].Content);
            Assert.AreEqual(0, label[0].GetScalarFlowIndex());
            Assert.AreEqual(1, label[1].GetScalarFlowIndex());
            Assert.AreEqual(2, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(_.Name.DisplayName, textBlock[1].Text);
            Assert.AreEqual(0, textBlock[0].GetScalarFlowIndex());
            Assert.AreEqual(1, textBlock[1].GetScalarFlowIndex());
            Assert.AreEqual(textBlock[0], label[0].Target);
            Assert.AreEqual(textBlock[1], label[1].Target);
        }
        public void CompositeScalarBinding_flowable()
        {
            var dataSet = DataSetMock.ProductCategories(1);
            var _       = dataSet._;
            ScalarBinding <Label>             label     = null;
            ScalarBinding <TextBlock>         textBlock = null;
            ScalarCompositeBinding <XamlPane> pane      = null;
            var elementManager = dataSet.CreateElementManager(builder =>
            {
                textBlock = _.Name.AsScalarTextBlock();
                label     = _.Name.AsFlowRepeatableScalarLabel(textBlock);
                pane      = new ScalarCompositeBinding <XamlPane>().RepeatWhenFlow()
                            .AddChild(label, v => v.Label).AddChild(textBlock, v => v.TextBlock);
                builder.Layout(Orientation.Vertical, 0)
                .GridColumns("100").GridRows("100", "100")
                .AddBinding(0, 0, pane)
                .AddBinding(0, 1, _.Name.BindToTextBlock());
            });

            Assert.AreEqual(1, pane.FlowRepeatCount);
            Assert.AreEqual(0, pane[0].GetScalarFlowIndex());
            Assert.AreEqual(1, label.FlowRepeatCount);
            Assert.AreEqual("0. " + _.Name.DisplayName, label[0].Content);
            Assert.AreEqual(0, label[0].GetScalarFlowIndex());
            Assert.AreEqual(1, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(0, textBlock[0].GetScalarFlowIndex());
            Assert.AreEqual(textBlock[0], label[0].Target);
            Assert.AreEqual(pane[0].Children[0], label[0]);
            Assert.AreEqual(pane[0].Children[1], textBlock[0]);

            elementManager.FlowRepeatCount = 2;
            Assert.AreEqual(2, pane.FlowRepeatCount);
            Assert.AreEqual(0, pane[0].GetScalarFlowIndex());
            Assert.AreEqual(1, pane[1].GetScalarFlowIndex());
            Assert.AreEqual(2, label.FlowRepeatCount);
            Assert.AreEqual("0. " + _.Name.DisplayName, label[0].Content);
            Assert.AreEqual("1. " + _.Name.DisplayName, label[1].Content);
            Assert.AreEqual(0, label[0].GetScalarFlowIndex());
            Assert.AreEqual(1, label[1].GetScalarFlowIndex());
            Assert.AreEqual(2, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(_.Name.DisplayName, textBlock[1].Text);
            Assert.AreEqual(0, textBlock[0].GetScalarFlowIndex());
            Assert.AreEqual(1, textBlock[1].GetScalarFlowIndex());
            Assert.AreEqual(textBlock[0], label[0].Target);
            Assert.AreEqual(textBlock[1], label[1].Target);
            Assert.AreEqual(pane[0].Children[0], label[0]);
            Assert.AreEqual(pane[0].Children[1], textBlock[0]);
            Assert.AreEqual(pane[1].Children[0], label[1]);
            Assert.AreEqual(pane[1].Children[1], textBlock[1]);

            elementManager.FlowRepeatCount = 3;
            Assert.AreEqual(3, pane.FlowRepeatCount);
            Assert.AreEqual(0, pane[0].GetScalarFlowIndex());
            Assert.AreEqual(1, pane[1].GetScalarFlowIndex());
            Assert.AreEqual(2, pane[2].GetScalarFlowIndex());
            Assert.AreEqual(3, label.FlowRepeatCount);
            Assert.AreEqual("0. " + _.Name.DisplayName, label[0].Content);
            Assert.AreEqual("1. " + _.Name.DisplayName, label[1].Content);
            Assert.AreEqual("2. " + _.Name.DisplayName, label[2].Content);
            Assert.AreEqual(0, label[0].GetScalarFlowIndex());
            Assert.AreEqual(1, label[1].GetScalarFlowIndex());
            Assert.AreEqual(2, label[2].GetScalarFlowIndex());
            Assert.AreEqual(3, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(_.Name.DisplayName, textBlock[1].Text);
            Assert.AreEqual(_.Name.DisplayName, textBlock[2].Text);
            Assert.AreEqual(0, textBlock[0].GetScalarFlowIndex());
            Assert.AreEqual(1, textBlock[1].GetScalarFlowIndex());
            Assert.AreEqual(2, textBlock[2].GetScalarFlowIndex());
            Assert.AreEqual(textBlock[0], label[0].Target);
            Assert.AreEqual(textBlock[1], label[1].Target);
            Assert.AreEqual(textBlock[2], label[2].Target);
            Assert.AreEqual(pane[0].Children[0], label[0]);
            Assert.AreEqual(pane[0].Children[1], textBlock[0]);
            Assert.AreEqual(pane[1].Children[0], label[1]);
            Assert.AreEqual(pane[1].Children[1], textBlock[1]);
            Assert.AreEqual(pane[2].Children[0], label[2]);
            Assert.AreEqual(pane[2].Children[1], textBlock[2]);

            elementManager.FlowRepeatCount = 2;
            Assert.AreEqual(2, pane.FlowRepeatCount);
            Assert.AreEqual(0, pane[0].GetScalarFlowIndex());
            Assert.AreEqual(1, pane[1].GetScalarFlowIndex());
            Assert.AreEqual(2, label.FlowRepeatCount);
            Assert.AreEqual("0. " + _.Name.DisplayName, label[0].Content);
            Assert.AreEqual("1. " + _.Name.DisplayName, label[1].Content);
            Assert.AreEqual(0, label[0].GetScalarFlowIndex());
            Assert.AreEqual(1, label[1].GetScalarFlowIndex());
            Assert.AreEqual(2, textBlock.FlowRepeatCount);
            Assert.AreEqual(_.Name.DisplayName, textBlock[0].Text);
            Assert.AreEqual(_.Name.DisplayName, textBlock[1].Text);
            Assert.AreEqual(0, textBlock[0].GetScalarFlowIndex());
            Assert.AreEqual(1, textBlock[1].GetScalarFlowIndex());
            Assert.AreEqual(textBlock[0], label[0].Target);
            Assert.AreEqual(textBlock[1], label[1].Target);
            Assert.AreEqual(pane[0].Children[0], label[0]);
            Assert.AreEqual(pane[0].Children[1], textBlock[0]);
            Assert.AreEqual(pane[1].Children[0], label[1]);
            Assert.AreEqual(pane[1].Children[1], textBlock[1]);
        }