public SearchRow() { InitializeComponent(); StyleHelper.ApplyStyle(logic_cb, "searchbase_control"); StyleHelper.ApplyStyle(field_cb, "searchbase_control"); StyleHelper.ApplyStyle(operator_cb, "searchbase_control"); //StyleHelper.ApplyStyle(remove_bn,"remove_bn"); }
void InitializeConfirmButton() { StyleHelper.ApplyStyle(ConfirmButton, "confirm_bn"); ConfirmButton.Click += (s, e) => { var errs = GetValidationErrors(); if (string.IsNullOrEmpty(errs) && SubmitCallback != null) { SubmitCallback(this.DataContext); } }; }
private void addexp_click(object sender, RoutedEventArgs e) { if (_rowcount >= 4) { return; } querypanel.RowDefinitions.Add(new RowDefinition { Height = new GridLength(0, GridUnitType.Auto) }); var idx = querypanel.RowDefinitions.Count - 1; var searchrow = new SearchRow(); searchrow.DetermineFieldCallback = this.DetermineFieldCallback; searchrow.CreateControlCallback = this.CreateControlCallback; searchrow.RenderRow(_intputType); Grid.SetRow(searchrow, idx); Grid.SetColumn(searchrow, 1); querypanel.Children.Add(searchrow); var removebn = new Button(); StyleHelper.ApplyStyle(removebn, "remove_bn"); removebn.Click += (s, e2) => { querypanel.Children.Remove(removebn); querypanel.Children.Remove(searchrow); _rowcount--; }; Grid.SetRow(removebn, idx); querypanel.Children.Add(removebn); _rowcount++; }
public SearchControl() { InitializeComponent(); StyleHelper.ApplyStyle(addquery_bn, "addquery_bn"); }
public void RenderForm(object data, bool isreadonly) { DataContext = data; var datatype = data.GetType(); if (InputControlBuilder == null) { InputControlBuilder = new ControlsBuilder(); } root.Children.Clear(); _errlabels.Clear(); _editctls.Clear(); var props = datatype.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty); int rownum = 0; for (int i = 0; i < props.Count(); i++) { var fieldcontext = new FormItemContext(data, datatype, props[i], ControlType.None); // determine if create field bool suggestion = true; var attr0 = props[i].GetCustomAttribute(typeof(EditableAttribute)) as EditableAttribute; var attr1 = props[i].GetCustomAttribute(typeof(KeyAttribute)) as KeyAttribute; if (attr1 != null || (attr0 != null && !attr0.AllowEdit)) { suggestion = false; } if (DetermineFieldCreationCallback != null) { suggestion = DetermineFieldCreationCallback(fieldcontext, suggestion); } if (!suggestion) { continue; } // add row root.RowDefinitions.Add(new RowDefinition { Height = new GridLength(0, GridUnitType.Auto) }); var rowcontainer = new StackPanel(); rowcontainer.Orientation = Orientation.Horizontal; Grid.SetRow(rowcontainer, rownum); root.Children.Add(rowcontainer); // label var lbcontext = new FormItemContext(data, datatype, props[i], ControlType.Label); Label label = new Label(); var attr = props[i].GetCustomAttribute(typeof(DisplayAttribute)) as DisplayAttribute; if (attr != null) { if (!string.IsNullOrEmpty(attr.Name)) { label.Content = attr.Name; } if (!string.IsNullOrEmpty(attr.Description)) { label.ToolTip = attr.Description; } } if (label.Content == null) { label.Content = props[i].Name; } StyleHelper.ApplyStyle(label); var labelctl = OnCreateControl(lbcontext, label); rowcontainer.Children.Add(labelctl); // editable var editcontext = new FormItemContext(data, datatype, props[i], ControlType.Editable); var editctl = InputControlBuilder.CreateControl(editcontext); editctl = OnCreateControl(editcontext, editctl); if (isreadonly) { editctl.IsEnabled = false; } rowcontainer.Children.Add(editctl); _editctls.Add(editctl); // error label var errtb = new TextBlock(); if (!isreadonly) { errtb.Tag = props[i].Name; var errbinding = new Binding { Source = editctl, Path = CustomValidation.GetValidationMsgBindingPath(editctl) }; errtb.SetBinding(TextBlock.TextProperty, errbinding); StyleHelper.ApplyStyle(errtb, FormControlConstrants.VALIDATION_ERROR_STYLE); rowcontainer.Children.Add(errtb); _errlabels.Add(errtb); } if (LayoutControlCallback != null) { LayoutControlCallback(this.root, label, editctl, errtb); } rownum++; } if (isreadonly) { ConfirmButton.Visibility = Visibility.Collapsed; } }