Переменные двустороннего связывания для управления формой - PullRequest
0 голосов
/ 11 января 2019

С winforms, таким же образом, как вы можете использовать listbox1.datasource = new List<string>(...), чтобы связать данные списка со списком элементов, как вы похожи, когда текстовое поле привязано к значению переменной?

Я знаю, что есть несколько неинтуитивных способов сделать это.

, например

class form : Form {

    string name;

    //change variable every time the textbox changes

    private void name_textbox_change(object sender, EventArgs e)
    {
        name=name_textbox.text();
    }

    //change variable on closing

    private void form_closing(object sender, EventArgs e)
    {
        name=name_textbox.text();
    }



}

но во всех этих случаях вы должны явно присвоить значение переменной для КАЖДОЙ переменной. В идеале я мог бы сделать что-то похожее на.

name_textbox.datasource = name;

Где имя меняется каждый раз, когда меняется текстовое поле, а текстовое поле меняется каждый раз, когда меняется переменная имени.

Я знаю, что вы можете использовать System.ComponentModel.INotifyPropertyChanged в некоторой степени, но я считаю, что вам все равно придется вручную писать геттер и сеттер для каждой переменной, которую вы хотите связать.

1 Ответ

0 голосов
/ 11 января 2019

Попробуйте DataBindings

textBox.DataBindings.Add("Text", this, "PropertyToBind");

Обратите внимание, что PropertyToBind - это имя свойства, которое объявлено в вашем классе, как ваша форма

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