2009-11-02 6 views
0

Я хотел бы создать простые объекты во время выполнения (текстовое поле, метка и т. Д.) И добавить их в грид в моем приложении WPF. Моя проблема в том, что мне нужно определить их в файле app.config. Я читаю данные конфигурации с помощью метода «ConfigurationManager.GetSection». Ниже приведен пример XML, который определяет два текстовых поля. Ключевые значения всегда определяются как этикетки, так что следующее определяет две метки под названием «ID:» и «Имя:» и два ассоциированных TextBoxesКак создать контроль во время выполнения с помощью app.config?

<HardwareControls> 
    <add key="ID:" value="System.Windows.Controls.TextBox"/> 
    <add key="Name:" value="System.Windows.Controls.TextBox"/> 
</HardwareControls> 

В настоящее время я использую следующий код для создания объекта TextBox, но необходимость чтобы изменить его, чтобы типы управления определялись данными конфигурации, а не жестко закодированы. Может ли кто-нибудь помочь в том, как я буду делать это, исходя из того, что я знаю тип управления, определенный строкой?

TextBox tb1 = new TextBox(); 
tb1.Width = 100; 
tb1.SetValue(Grid.ColumnProperty, 1); 
tb1.SetValue(Grid.RowProperty, i); 

Я также вижу ситуацию, когда я могу определить дополнительные значения, такие как ширина текстового поля в файле конфигурации. Есть ли лучшее решение для хранения этого в app.config, поскольку это похоже на то, что метод GetSection поддерживает только пару ключевых/значений (я могу ошибаться в этом предположении, поскольку я еще слишком много читал об этом).

+0

Есть ли у нее быть app.config или это может быть любой файл конфигурации? – serialhobbyist

ответ

1

Вы можете использовать Activator.CreateInstance

Пример:

string typeName = "System.Windows.Controls.TextBox"; 
Type type = Type.GetType(typeName); 
object control = Activator.CreateInstance(type); // control is your TextBox 
Смежные вопросы