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>());
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>());
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); } }
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); }
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); }
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); }
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); }
public static TreeViewItemBindingExpression BindControlAnd(this Control item, MouseAction action) { return(item.Bind(ModifierKeys.Control, action)); }
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); } }