Вопрос архитектуры - Как использовать динамические элементы управления в WPF и C # - PullRequest
0 голосов
/ 28 февраля 2019

Я использую C # и WPF для этого проекта.

Основная цель приложения - создать строку, которая будет работать как клиент в WindowsКомандная строка:

Exe File1 параметр1 параметр1_значение параметр2 параметр2_значение

Пример:

update_respgrp.exe -c Сборка -a IskModAuthor -t last -f obj.txt

Необходимо изменить EXE-файлследуя запросу пользователя.Параметры после этого зависят от EXE-файла, который выбирает пользователь.

Для его выполнения я создал динамический пользовательский элемент управления (назовем его Main User Control ), который содержит 4 другихДополнительные пользовательские элементы управления: Снимок основного пользовательского элемента управления

Основной пользовательский элемент управления имеет 3 вспомогательных пользовательских элемента управления, которые обычно не нужно менять (UC2-UC4).

Проблема в UC1, который содержит все параметры и их значения.

Как только я нажимаю кнопку, пользовательский элемент управления должен меняться в соответствии с кнопкой, которую я нажал.

Каждый пользовательский элемент управления, заменяющий UC1, имеет разное количество текстового поля и поля со списком.

Я хотел использовать наследование, но я понял, что WPF действительно не поддерживает наследование (поправьте меня, если яЯ не прав).

Поэтому я попытался загрузить пользовательский элемент управления динамически.Я думаю, что понимаю, как загрузить пользовательский элемент управления динамически (поправьте меня, если я ошибаюсь):

   private void GenerateClientBlock()
    {
        Type newType = Type.GetType("ClientCatalogWPF.GeneralClientControl", true, true);
        object o = Activator.CreateInstance(newType, "UC1");
        ClientControl.Children.Add((UIElement)o);
    }

Проблема начинается, когда я хочу получить все значения элементов управления UC1 в переменную.Основной UC теперь не контролирует UC1, потому что он изменяется динамически.Надеюсь, мне удастся описать всю картину.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...