воскресенье, 14 августа 2011 г.

C#. Связывание настроек в WinForms

Вводная: Необходимо сделать привязку настроек (стандартных Properties.Settings) к элементам формы.
Конечно я понимаю, что это в WPF реализовано на уровне платформы, но и в windows forms иногда нужно сделать привязку данных. Реализуется, как оказалось, достаточно просто -


    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        private void Form1_Load(object sender, EventArgs e)
        {
            // Text - названия свойства компонета к которому идёт привязка
            // Server - свойство которое привязывается
            this.textBox1.DataBindings.Add("Text", Properties.Settings.Default, "Server"trueDataSourceUpdateMode.Never);
        }
        
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            try {
                // При изменении значения в текстбоксе записываем его.
                // В этом и есть главное отличие от WPF, 
                // здесь нужно это сделать вручную
                this.textBox1.DataBindings[0].WriteValue();
            }
            catch { }
 
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // При закрытии формы сохраняем настройки
            Properties.Settings.Default.Save();
        }
 
    }