2013-08-12 37 views
0

我創建了自定義的ComboBox控件,並希望將自定義屬性「ActiveValue」綁定到DataSet。我這樣做:Winforms派生的combobox屬性雙向綁定

cboMyComboBox.DataBindings.Add(New System.Windows.Forms.Binding("ActiveValue", Me.dstDetails, "Table.CBOVALUE", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged, "")) 
... 

Public Property ActiveValue As String 
    Get 
     Return _activeValue 
    End Get 
    Set(value As String) 
     If _activeValue <> value Then 
      _activeValue = value 
      Me.Text = _activeValue 
     End If 
    End Set 
End Property 

它從DataSet中檢索值,但它無法更新。我選擇它的價值並不重要,只是沒有更新。該屬性是簡單的文本字段。試圖在我的派生ComboBox類上實現INotifyPropertyChanged,但它沒有幫助。有人能告訴我問題在哪裏嗎?謝謝

更新: 在我的課堂上發現了一個錯誤,但雷克斯提供的數據綁定寫入方法也是有幫助的,謝謝你的時間。

+1

如果您實現了'INotifyPropertyChanged',如果您實現的接口錯誤,那可能是您的問題。 –

回答

1

不確定爲什麼我無法看到完整的實現,但是如果您確實想強制數據綁定將值寫回對象,請嘗試DataBinding.WriteValue(),因此在您的ComboBox類中,在適當的位置執行此操作可能在某些文本中改變了事件處理程序):

theDataBinding = Me.DataBindings(theIndex) ' you may find the binding by the bound field name 
    theDataBinding.WriteValue()