public MainWindowViewModel() { //список моделей с данными, получаемых из yaml var controls = YamlDriver.GetObjects(@"..\..\Resources\YamlConfig.yaml"); ControlsList = new ObservableCollection <TextBoxControlViewModel>(); //только текстбоксы в коллекции foreach (var control in controls) { TextBoxEx = new TextBoxControlViewModel(control as TextBoxModel); ControlsList.Add(TextBoxEx); } }
public void GenerateLayout() { var controls = YamlDriver.GetObjects(@"..\..\Resources\YamlConfig.yaml"); var currentRow = 0; foreach (var control in controls) { switch (control.GetType().Name) { case "TextBoxModel": { //создаем TextBoxControlView var textBoxControlView = new TextBoxControlView(); var textBoxControlViewModel = new TextBoxControlViewModel(control as TextBoxModel); textBoxControlView.DataContext = textBoxControlViewModel; //пихаем TextBoxControlView в коллекцию UIControlsList.Add(textBoxControlView); //пихаем TextBoxControlView на форму DataGrid.RowDefinitions.Add(new RowDefinition()); DataGrid.Children.Add(textBoxControlView); Grid.SetRow(textBoxControlView, currentRow); break; } case "CheckBoxModel": { var checkBoxControlView = new CheckBoxControlView(); var checkBoxControlViewModel = new CheckBoxControlViewModel(control as CheckBoxModel); checkBoxControlView.DataContext = checkBoxControlViewModel; UIControlsList.Add(checkBoxControlView); DataGrid.RowDefinitions.Add(new RowDefinition()); DataGrid.Children.Add(checkBoxControlView); Grid.SetRow(checkBoxControlView, currentRow); break; } case "RadioButtonGroupModel": { var buttonGroupControlView = new RadioButtonGroupControlView(); var radioButtonGroupControlViewModel = new RadioButtonGroupControlViewModel(control as RadioButtonGroupModel); buttonGroupControlView.DataContext = radioButtonGroupControlViewModel; UIControlsList.Add(buttonGroupControlView); DataGrid.RowDefinitions.Add(new RowDefinition()); DataGrid.Children.Add(buttonGroupControlView); Grid.SetRow(buttonGroupControlView, currentRow); break; } } ++currentRow; } }