Как динамически создавать элементы управления с привязками к пользовательским настройкам в окне
У меня есть окно, в которое я динамически добавляю StackPanel, а для этой StackPanel - метку и TextBox для каждой пользовательской настройки. Я надеялся на 2 способа связать значение из пользовательской настройки со значением в текстовом поле, чтобы я мог редактировать любые пользовательские настройки во время выполнения, которые были добавлены во время разработки.
using System.Configuration;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
namespace Settings
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
InitSettings();
}
private void InitSettings()
{
Window window = this;
StackPanel stackPanel = new StackPanel();
foreach (SettingsProperty settingsProperty in Properties.Settings.Default.Properties)
{
Binding binding = new Binding();
binding.Source = settingsProperty;
binding.Mode = BindingMode.TwoWay;
binding.Path = new PropertyPath(settingsProperty.Name);
Label label = new Label();
label.Content = settingsProperty.Name;
TextBox textBox = new TextBox();
textBox.SetBinding(TextBox.TextProperty, binding);
textBox.GetBindingExpression(TextBox.TextProperty).UpdateTarget();
stackPanel.Children.Add(label);
stackPanel.Children.Add(textBox);
}
window.Content = stackPanel;
}
}
}
Окно выглядит так, как я ожидаю, но значения из моих пользовательских настроек не отображаются, и я не могу понять, что не так в моем коде или если это вообще возможно.