private Tuple <Grid, DesignPatternParameter> GetParameterGrid(DesignPatternParameter dpParameter) { var grids = (from p in ControlsGridView.Children where p is Grid select p as Grid).ToList(); var parameterGrid = (from g in grids where g.Name == dpParameter.Name select new Tuple <Grid, DesignPatternParameter>(g, dpParameter)).FirstOrDefault(); return(parameterGrid); }
private async Task <bool> ValidateTextBoxesMultiParameter(IEnumerable <TextBox> textBoxes, DesignPatternParameter parameter) { var errorBuilder = new StringBuilder(); var hasErrors = false; foreach (var item in textBoxes) { if (String.IsNullOrEmpty(item.Text)) { errorBuilder.Append(parameter.Description + " " + item.Name.Replace(parameter.Name + "_", "") + " could not be empty"); errorBuilder.Append(Environment.NewLine); hasErrors = true; } } if (hasErrors) { var error = new MessageDialog(errorBuilder.ToString()); await error.ShowAsync(); } return(!hasErrors); }
private void CreateMultipleParameterGrid(DesignPatternParameter param, int rowNumber) { //Create the outer Grid to hold the Grid that will contain the list and the buttons var parameterGrid = new Grid { Name = param.Name }; parameterGrid.ColumnDefinitions.Add(new ColumnDefinition()); parameterGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(2, GridUnitType.Star) }); parameterGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); parameterGrid.Loaded += (sender, args) => { var g = (Grid)sender; var p = (Grid)g.Parent; g.MaxHeight = p.ActualHeight; }; parameterGrid.LayoutUpdated += (sender, o) => { var g = parameterGrid; var p = g.Parent as Grid; if (p != null) { g.MaxHeight = p.ActualHeight; } }; var scroll = new ScrollViewer(); scroll.VerticalScrollMode = ScrollMode.Auto; scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; scroll.Name = param.Name + "list"; var parameterListGrid = new StackPanel { Name = param.Name + "list" }; var firstParameterInList = new TextBox { Name = param.Name + "_1" }; firstParameterInList.LayoutUpdated += (sender, o) => UpdateTextBoxLayout(firstParameterInList); parameterListGrid.Children.Add(firstParameterInList); scroll.Content = parameterListGrid; var addParameterButton = new Button { Content = "Add", Name = param.Name + "_add_button", HorizontalAlignment = HorizontalAlignment.Right, Margin = new Thickness(15, 15, 75, 15) }; addParameterButton.Click += buttonAdd_Click; Grid.SetColumn(addParameterButton, 0); Grid.SetRow(addParameterButton, 1); parameterGrid.Children.Add(scroll); parameterGrid.Children.Add(addParameterButton); Grid.SetRow(parameterGrid, rowNumber); Grid.SetColumn(parameterGrid, 1); ControlsGridView.Children.Add(parameterGrid); }