/// <summary> /// Creates script according parameters of this parameterset /// </summary> /// <returns>Return script of this parameterset parameters</returns> public string GetScript() { if (this.Parameters == null || this.Parameters.Count == 0) { return(string.Empty); } StringBuilder builder = new StringBuilder(); foreach (ParameterViewModel parameter in this.Parameters) { if (parameter.Value == null) { continue; } if (parameter.Parameter.ParameterType.IsSwitch) { if (((bool?)parameter.Value) == true) { builder.AppendFormat("-{0} ", parameter.Name); } continue; } string parameterValueString = parameter.Value.ToString(); if (parameterValueString.Length == 0) { continue; } ShowCommandParameterType parameterType = parameter.Parameter.ParameterType; if (parameterType.IsEnum || parameterType.IsString || (parameterType.IsArray && parameterType.ElementType.IsString)) { parameterValueString = ParameterSetViewModel.GetDelimitedParameter(parameterValueString, "\"", "\""); } else if (parameterType.IsScriptBlock) { parameterValueString = ParameterSetViewModel.GetDelimitedParameter(parameterValueString, "{", "}"); } else { parameterValueString = ParameterSetViewModel.GetDelimitedParameter(parameterValueString, "(", ")"); } builder.AppendFormat("-{0} {1} ", parameter.Name, parameterValueString); } return(builder.ToString().Trim()); }
/// <summary> /// Creates a TextBox control for input type field. /// </summary> /// <param name="parameterViewModel">DataContext object.</param> /// <param name="rowNumber">Row number.</param> /// <returns>Return a TextBox control.</returns> private static TextBox CreateTextBoxControl(ParameterViewModel parameterViewModel, int rowNumber) { TextBox textBox = new TextBox(); textBox.DataContext = parameterViewModel; textBox.SetValue(Grid.ColumnProperty, 1); textBox.SetValue(Grid.RowProperty, rowNumber); textBox.Margin = new Thickness(2); textBox.SetBinding(TextBox.ToolTipProperty, new Binding("ToolTip")); Binding valueBinding = new Binding("Value"); valueBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; textBox.SetBinding(TextBox.TextProperty, valueBinding); //// Add AutomationProperties.AutomationId for UI Automation test. textBox.SetValue( System.Windows.Automation.AutomationProperties.AutomationIdProperty, string.Format(CultureInfo.CurrentCulture, "txt{0}", parameterViewModel.Name)); textBox.SetValue( System.Windows.Automation.AutomationProperties.NameProperty, parameterViewModel.Name); ShowCommandParameterType parameterType = parameterViewModel.Parameter.ParameterType; if (parameterType.IsArray) { parameterType = parameterType.ElementType; } if (parameterType.IsScriptBlock || parameterType.ImplementsDictionary) { textBox.AcceptsReturn = true; textBox.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; textBox.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; textBox.Loaded += new RoutedEventHandler(ParameterSetControl.MultiLineTextBox_Loaded); } return(textBox); }