Пользовательские настройки привязки к полям очищает поля - PullRequest
0 голосов
/ 02 июля 2019

Я создал UserControl, содержащий 4 текстовых поля и 4 свойства, указывающие на текстовые свойства каждого текстового поля:

    public virtual string Server
    {
        get { return txtDBServer.Text; }
        set { txtDBServer.Text = value; }
    }

    public virtual string Database
    {
        get { return txtDBName.Text; }
        set { txtDBName.Text = value; }
    }

    public virtual string User
    {
        get { return txtDBUser.Text; }
        set { txtDBUser.Text = value; }
    }

    public virtual string Pass
    {
        get { return txtDBPass.Text; }
        set { txtDBPass.Text = value; }
    }

Затем я использовал этот элемент управления в форме Windows и привязал эти 4 свойства к пользовательской настройке. Это сгенерированный код VS:

        this.sqlCx.DataBindings.Add(new System.Windows.Forms.Binding("Server", global::Devtools.WinApp.User.Default, "Server", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
        this.sqlCx.DataBindings.Add(new System.Windows.Forms.Binding("Database", global::Devtools.WinApp.User.Default, "Database", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
        this.sqlCx.DataBindings.Add(new System.Windows.Forms.Binding("User", global::Devtools.WinApp.User.Default, "UserName", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
        this.sqlCx.DataBindings.Add(new System.Windows.Forms.Binding("Pass", global::Devtools.WinApp.User.Default, "Pass", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));

Когда я выполняю приложение, между выполнениями сохраняется только первое поле «Сервер», но 3 других поля сбрасываются на пустые, когда пользовательский элемент управления теряет фокус.

Почему это происходит и как это предотвратить?

...