Привязка WinForms - PullRequest
       16

Привязка WinForms

2 голосов
/ 04 мая 2010

У меня есть некоторые элементы управления, связанные с элементом управления BindingSource.

Я хочу выполнить расчет при изменении значения в одном элементе управления и установить результат в другом элементе управления.

Обновлять ли текстовое поле, к которому привязано свойство, или обновлять базовую сущность, которая в любом случае обновит элемент управления (надеюсь)?

При изменении поля со списком A (OnPropertyChange) текстовое поле B обновляется с новым вычисленным результатом. Это прекрасно работает, но я заметил, что когда я покидаю выпадающий список А, он возвращается к своему первоначальному значению. Что здесь происходит!

Private Sub ComboBoxEditCostCode_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxEditCostCode.EditValueChanged
    Select Case ComboBoxEditCostCode.EditValue
        Case "7" 
            CType(TransactionEntityBindingSource.Current, TblTransactionsEntity).Qbdescription = "7-is here" 

        Case "2" 
            CType(TransactionEntityBindingSource.Current, TblTransactionsEntity).Qbdescription = "2-is here" 

        Case Else
            CType(TransactionEntityBindingSource.Current, TblTransactionsEntity).Qbdescription = "7-is here"
    End Select
End Sub

Ответы [ 3 ]

1 голос
/ 04 мая 2010

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

0 голосов
/ 29 декабря 2011

Как правило, если вы используете источник привязки, вы всегда проверяете данные через него. Не забудьте вызвать BindingSource.EndEdit, когда закончите, надеюсь, это поможет

0 голосов
/ 04 мая 2010

Расскажите подробнее о ваших изменениях, как связано второе текстовое поле?
Вы должны изменить свои исходные данные, а не менять значение в текстовом поле b.
Также, когда текстовое поле A теряет фокус, возникает событие EndEdit, и я думаю, что механизм привязки обновляет значение в текстовом поле B.
Вы можете контролировать, какое действие редактировать, когда устанавливаете привязку к текстовым полям.

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