Как динамически создавать элементы управления с привязками к пользовательским настройкам в окне

У меня есть окно, в которое я динамически добавляю 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;
        }
    }
}

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

0 ответов

Другие вопросы по тегам