Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void CreateGrid()
- {
- for (var parameterNumberIndex = 1; parameterNumberIndex < 97; parameterNumberIndex++)
- {
- var paraName = new TextBlock()
- {
- Name = $"Parameter{parameterNumberIndex}",
- FontSize = 25,
- VerticalAlignment = VerticalAlignment.Top,
- Margin = new Thickness(0, 0, 0, 10)
- };
- var slider = new Slider()
- {
- Name = $"ValueSlider{parameterNumberIndex}",
- Width = 200,
- VerticalAlignment = VerticalAlignment.Center,
- HorizontalAlignment = HorizontalAlignment.Center
- };
- var value = new TextBox()
- {
- Name = $"ValueBox{parameterNumberIndex}",
- Margin = new Thickness(10, 5, 0, 0),
- FontSize = 20,
- VerticalAlignment = VerticalAlignment.Top
- };
- var row = new RowDefinition { Height = new GridLength(50, GridUnitType.Pixel) };
- SettingsGrid.RowDefinitions.Add(row);
- var nameBinding = new Binding
- {
- Source = ViewModel.BlockCollection.NamesBlock.Names[parameterNumberIndex].NameString,
- Mode = BindingMode.OneWay
- };
- var valueBinding = new Binding()
- {
- Source = ViewModel.BlockCollection.ParameterBlock.Parameters[parameterNumberIndex].ParameterValue,
- Mode = BindingMode.TwoWay
- };
- var minBinding = new Binding()
- {
- Source = ViewModel.BlockCollection.MinMaxBlock.AllValues[parameterNumberIndex].MinValue,
- Mode = BindingMode.OneWay
- };
- var maxBinding = new Binding()
- {
- Source = ViewModel.BlockCollection.MinMaxBlock.AllValues[parameterNumberIndex].MaxValue,
- Mode = BindingMode.OneWay
- };
- var textBinding = new Binding()
- {
- Path = new PropertyPath("Value"),
- Source = slider,
- Mode = BindingMode.TwoWay
- };
- BindingOperations.SetBinding(paraName, TextBlock.TextProperty, nameBinding);
- BindingOperations.SetBinding(slider, Slider.MinimumProperty, minBinding);
- BindingOperations.SetBinding(slider, Slider.MaximumProperty, maxBinding);
- BindingOperations.SetBinding(slider, Slider.ValueProperty, valueBinding);
- BindingOperations.SetBinding(value, TextBox.TextProperty, textBinding);
- SettingsGrid.Children.Add(paraName);
- SettingsGrid.Children.Add(slider);
- SettingsGrid.Children.Add(value);
- Grid.SetColumn(paraName, 0);
- Grid.SetColumn(slider, 1);
- Grid.SetColumn(value, 2);
- Grid.SetRow(paraName, parameterNumberIndex - 1);
- Grid.SetRow(slider, parameterNumberIndex - 1);
- Grid.SetRow(value, parameterNumberIndex - 1);
- }
- }
- public class ParameterBlock : BindableBase
- {
- public ParameterBlock()
- {
- this.Parameters = new ObservableRangeCollection<ParameterBlockValue>();
- }
- public ObservableRangeCollection<ParameterBlockValue> Parameters
- {
- get => _parameters;
- set
- {
- _parameters = value;
- OnPropertyChanged();
- }
- }
- private ObservableRangeCollection<ParameterBlockValue> _parameters;
- }
- public class ParameterBlockValue : BindableBase
- {
- private uint _parameterValue;
- public uint ParameterValue
- {
- get => _parameterValue;
- set
- {
- _parameterValue = value;
- OnPropertyChanged();
- }
- }
- public ParameterBlockValue(uint parameter)
- {
- this.ParameterValue = parameter;
- }
- public override string ToString()
- {
- return $"{this.ParameterValue} {Environment.NewLine}";
- }
- }
Add Comment
Please, Sign In to add comment