public static Binding <T, T> Bind <T>(this Control control,
                                       Expression <Func <T> > controlExpression,
                                       Expression <Func <T> > propertyExpression)
 => control.Bind(
     controlExpression,
     propertyExpression,
     Converters.BypassConverter <T>(),
     Converters.BypassConverter <T>());
Example #2
0
 public static Binding <TViewModelData, string> BindTextTo <TViewModelData>(
     this Control control,
     Expression <Func <TViewModelData> > propertyExpression) =>
 control.Bind(
     () => control.Text,
     propertyExpression,
     Converters.ToStringConverter <TViewModelData>(),
     Converters.FromStringConverter <TViewModelData>());
Example #3
0
 private void BindMenu(DNNNodeCollection objNodes)
 {
     Visible = DisplayControl(objNodes);
     if (Visible)
     {
         Control.ClearNodes(); //since we always bind we need to clear the nodes for providers that maintain their state
         foreach (DNNNode objNode in objNodes)
         {
             ProcessNodes(objNode);
         }
         Control.Bind(objNodes);
     }
 }
Example #4
0
        public void DataContext_Binding_Should_Produce_Correct_Results()
        {
            var root = new Decorator
            {
                DataContext = new { Foo = "bar" },
            };

            var child = new Control();
            var dataContextBinding = new Binding("Foo");
            var values             = new List <object>();

            child.GetObservable(Border.DataContextProperty).Subscribe(x => values.Add(x));
            child.Bind(ContentControl.DataContextProperty, dataContextBinding);

            root.Child = child;

            Assert.Equal(new[] { null, "bar" }, values);
        }
Example #5
0
        public void DataContext_Binding_Should_Track_Parent()
        {
            var parent = new Decorator
            {
                DataContext = new { Foo = "foo" },
            };

            var child = new Control();

            var binding = new Binding
            {
                Path = "Foo",
            };

            child.Bind(Control.DataContextProperty, binding);

            Assert.Null(child.DataContext);
            parent.Child = child;
            Assert.Equal("foo", child.DataContext);
        }
Example #6
0
        public void DataContext_Binding_Should_Produce_Correct_Results()
        {
            var viewModel = new { Foo = "bar" };
            var root      = new Decorator
            {
                DataContext = viewModel,
            };

            var child  = new Control();
            var values = new List <object>();

            child.GetObservable(Control.DataContextProperty).Subscribe(x => values.Add(x));
            child.Bind(Control.DataContextProperty, new Binding("Foo"));

            // When binding to DataContext and the target isn't found, the binding should produce
            // null rather than UnsetValue in order to not propagate incorrect DataContexts from
            // parent controls while things are being set up. This logic is implemented in
            // `Avalonia.Markup.Data.Binding.Initiate`.
            Assert.True(child.IsSet(Control.DataContextProperty));

            root.Child = child;

            Assert.Equal(new[] { null, "bar" }, values);
        }
Example #7
0
 public static Binding <string, string> BindTextTo(
     this Control control,
     Expression <Func <string> > propertyExpression) =>
 control.Bind(() => control.Text, propertyExpression);
 public static void BindEnabled <T>(this Control control, T dataObject, Expression <Func <T, bool> > dataMember)
 {
     control.Bind(c => c.Enabled, dataObject, dataMember);
 }
Example #9
0
        public void DataContext_Binding_Should_Track_Parent()
        {
            var parent = new Decorator
            {
                DataContext = new { Foo = "foo" },
            };

            var child = new Control();

            var binding = new Binding
            {
                Path = "Foo",
            };

            child.Bind(Control.DataContextProperty, binding);

            Assert.Null(child.DataContext);
            parent.Child = child;
            Assert.Equal("foo", child.DataContext);
        }
Example #10
0
 public static TreeViewItemBindingExpression BindControlAnd(this Control item, MouseAction action)
 {
     return(item.Bind(ModifierKeys.Control, action));
 }
Example #11
0
 public static TreeViewItemBindingExpression BindControlAnd(this Control item, Key key)
 {
     return(item.Bind(ModifierKeys.Control, key));
 }
        protected override void OnPreRender(EventArgs e)
        {
            using (new DNNContext(this))
            {
                var blnUseSkinPathArrowImages    = Boolean.Parse(GetValue(UseSkinPathArrowImages, "false"));
                var blnUseRootBreadcrumbArrow    = Boolean.Parse(GetValue(UseRootBreadCrumbArrow, "true"));
                var blnUseSubMenuBreadcrumbArrow = Boolean.Parse(GetValue(UseSubMenuBreadCrumbArrow, "false"));
                var blnUseArrows = Boolean.Parse(GetValue(UseArrows, "true"));
                var blnRootOnly  = Boolean.Parse(GetValue(RootOnly, "false"));

                if (blnRootOnly)
                {
                    blnUseArrows            = false;
                    PopulateNodesFromClient = false;
                    StartTabId  = -1;
                    ExpandDepth = 1;
                }

                var strRootBreadcrumbArrow = !String.IsNullOrEmpty(RootBreadCrumbArrow)
                                                                ? PortalSettings.ActiveTab.SkinPath + RootBreadCrumbArrow
                                                                : ResolveUrl("~/images/breadcrumb.gif");

                if (blnUseSubMenuBreadcrumbArrow)
                {
                    var strSubMenuBreadcrumbArrow = ResolveUrl("~/images/breadcrumb.gif");
                    NodeLeftHTMLBreadCrumbSub = "<img alt='*' BORDER='0' src='" + strSubMenuBreadcrumbArrow + "'>";
                }

                if (blnUseRootBreadcrumbArrow)
                {
                    NodeLeftHTMLBreadCrumbRoot = "<img alt='*' BORDER='0' src='" + strRootBreadcrumbArrow + "'>";
                }

                var strRightArrow = !String.IsNullOrEmpty(RightArrow) ? RightArrow : "breadcrumb.gif";
                var strDownArrow  = !String.IsNullOrEmpty(DownArrow) ? DownArrow : "menu_down.gif";

                if (!String.IsNullOrEmpty(Separator))
                {
                    if (Separator.IndexOf("src=") != -1)
                    {
                        Separator = Separator.Replace("src=\"", "src=\"" + PortalSettings.ActiveTab.SkinPath);
                    }
                }

                if (!String.IsNullOrEmpty(LeftSeparator))
                {
                    if (LeftSeparator.IndexOf("src=") != -1)
                    {
                        LeftSeparator = LeftSeparator.Replace("src=\"", "src=\"" + PortalSettings.ActiveTab.SkinPath);
                    }
                }
                if (!String.IsNullOrEmpty(RightSeparator))
                {
                    if (RightSeparator.IndexOf("src=") != -1)
                    {
                        RightSeparator = RightSeparator.Replace("src=\"", "src=\"" + PortalSettings.ActiveTab.SkinPath);
                    }
                }
                if (!String.IsNullOrEmpty(LeftSeparatorBreadCrumb))
                {
                    if (LeftSeparatorBreadCrumb.IndexOf("src=") != -1)
                    {
                        LeftSeparatorBreadCrumb = LeftSeparatorBreadCrumb.Replace("src=\"", "src=\"" + PortalSettings.ActiveTab.SkinPath);
                    }
                }
                if (!String.IsNullOrEmpty(RightSeparatorBreadCrumb))
                {
                    if (RightSeparatorBreadCrumb.IndexOf("src=") != -1)
                    {
                        RightSeparatorBreadCrumb = RightSeparatorBreadCrumb.Replace(
                            "src=\"", "src=\"" + PortalSettings.ActiveTab.SkinPath);
                    }
                }
                if (!String.IsNullOrEmpty(LeftSeparatorActive))
                {
                    if (LeftSeparatorActive.IndexOf("src=") != -1)
                    {
                        LeftSeparatorActive = LeftSeparatorActive.Replace("src=\"", "src=\"" + PortalSettings.ActiveTab.SkinPath);
                    }
                }
                if (!String.IsNullOrEmpty(RightSeparatorActive))
                {
                    if (RightSeparatorActive.IndexOf("src=") != -1)
                    {
                        RightSeparatorActive = RightSeparatorActive.Replace("src=\"", "src=\"" + PortalSettings.ActiveTab.SkinPath);
                    }
                }

                PathSystemImage = blnUseSkinPathArrowImages ? PortalSettings.ActiveTab.SkinPath : ResolveUrl("~/images/");

                PathImage = PortalSettings.HomeDirectory;

                if (blnUseArrows)
                {
                    IndicateChildImageSub  = strRightArrow;
                    IndicateChildImageRoot = (ControlOrientation.ToLower() == "vertical") ? strRightArrow : strDownArrow;
                }
                else
                {
                    PathSystemImage       = ResolveUrl("~/images/");
                    IndicateChildImageSub = "spacer.gif";
                }

                if (String.IsNullOrEmpty(PathSystemScript))
                {
                    PathSystemScript = ResolveUrl("~/controls/SolpartMenu/");
                }

                Control.Bind(GetNavigationNodes(null));
                base.OnPreRender(e);
            }
        }