Guest User

Untitled

a guest
Feb 23rd, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. private void CreateGrid()
  2. {
  3. for (var parameterNumberIndex = 1; parameterNumberIndex < 97; parameterNumberIndex++)
  4. {
  5. var paraName = new TextBlock()
  6. {
  7. Name = $"Parameter{parameterNumberIndex}",
  8. FontSize = 25,
  9. VerticalAlignment = VerticalAlignment.Top,
  10. Margin = new Thickness(0, 0, 0, 10)
  11. };
  12.  
  13. var slider = new Slider()
  14. {
  15. Name = $"ValueSlider{parameterNumberIndex}",
  16. Width = 200,
  17. VerticalAlignment = VerticalAlignment.Center,
  18. HorizontalAlignment = HorizontalAlignment.Center
  19. };
  20.  
  21. var value = new TextBox()
  22. {
  23. Name = $"ValueBox{parameterNumberIndex}",
  24. Margin = new Thickness(10, 5, 0, 0),
  25. FontSize = 20,
  26. VerticalAlignment = VerticalAlignment.Top
  27. };
  28.  
  29. var row = new RowDefinition { Height = new GridLength(50, GridUnitType.Pixel) };
  30.  
  31. SettingsGrid.RowDefinitions.Add(row);
  32.  
  33. var nameBinding = new Binding
  34. {
  35. Source = ViewModel.BlockCollection.NamesBlock.Names[parameterNumberIndex].NameString,
  36. Mode = BindingMode.OneWay
  37. };
  38.  
  39. var valueBinding = new Binding()
  40. {
  41. Source = ViewModel.BlockCollection.ParameterBlock.Parameters[parameterNumberIndex].ParameterValue,
  42. Mode = BindingMode.TwoWay
  43. };
  44.  
  45. var minBinding = new Binding()
  46. {
  47. Source = ViewModel.BlockCollection.MinMaxBlock.AllValues[parameterNumberIndex].MinValue,
  48. Mode = BindingMode.OneWay
  49. };
  50.  
  51. var maxBinding = new Binding()
  52. {
  53. Source = ViewModel.BlockCollection.MinMaxBlock.AllValues[parameterNumberIndex].MaxValue,
  54. Mode = BindingMode.OneWay
  55. };
  56.  
  57. var textBinding = new Binding()
  58. {
  59. Path = new PropertyPath("Value"),
  60. Source = slider,
  61. Mode = BindingMode.TwoWay
  62. };
  63.  
  64. BindingOperations.SetBinding(paraName, TextBlock.TextProperty, nameBinding);
  65. BindingOperations.SetBinding(slider, Slider.MinimumProperty, minBinding);
  66. BindingOperations.SetBinding(slider, Slider.MaximumProperty, maxBinding);
  67. BindingOperations.SetBinding(slider, Slider.ValueProperty, valueBinding);
  68. BindingOperations.SetBinding(value, TextBox.TextProperty, textBinding);
  69.  
  70. SettingsGrid.Children.Add(paraName);
  71. SettingsGrid.Children.Add(slider);
  72. SettingsGrid.Children.Add(value);
  73.  
  74. Grid.SetColumn(paraName, 0);
  75. Grid.SetColumn(slider, 1);
  76. Grid.SetColumn(value, 2);
  77.  
  78. Grid.SetRow(paraName, parameterNumberIndex - 1);
  79. Grid.SetRow(slider, parameterNumberIndex - 1);
  80. Grid.SetRow(value, parameterNumberIndex - 1);
  81. }
  82. }
  83.  
  84. public class ParameterBlock : BindableBase
  85. {
  86. public ParameterBlock()
  87. {
  88. this.Parameters = new ObservableRangeCollection<ParameterBlockValue>();
  89. }
  90.  
  91. public ObservableRangeCollection<ParameterBlockValue> Parameters
  92. {
  93. get => _parameters;
  94. set
  95. {
  96. _parameters = value;
  97. OnPropertyChanged();
  98. }
  99. }
  100.  
  101. private ObservableRangeCollection<ParameterBlockValue> _parameters;
  102. }
  103.  
  104. public class ParameterBlockValue : BindableBase
  105. {
  106. private uint _parameterValue;
  107.  
  108. public uint ParameterValue
  109. {
  110. get => _parameterValue;
  111. set
  112. {
  113. _parameterValue = value;
  114. OnPropertyChanged();
  115. }
  116. }
  117.  
  118. public ParameterBlockValue(uint parameter)
  119. {
  120. this.ParameterValue = parameter;
  121. }
  122.  
  123. public override string ToString()
  124. {
  125. return $"{this.ParameterValue} {Environment.NewLine}";
  126. }
  127. }
Add Comment
Please, Sign In to add comment