2011-08-08 38 views
1

我正在創建一個複合用戶控件,並試圖將控件作爲屬性公開,以便我可以將它們從我將用戶控件拖放到的表單中進行數據綁定。我試圖公開的一個控件是組合框,我似乎無法弄清楚如何將這個組合框公開給設計者。我正在嘗試下面的代碼,我已經從我可以找到的一些文檔拼湊在一起,但迄今沒有喜悅。如何在數據綁定的用戶控件上公開組合框?

<Category("Data"), Bindable(True), _ 
Browsable(True), EditorBrowsable(EditorBrowsableState.Always), _ 
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), _ 
AttributeProvider(GetType(IListSource))> _ 
Public Property RollbackCombo As ComboBox 
    Get 
     Return cboRollBack 
    End Get 
    Set(value As ComboBox) 
     cboRollBack = value 
    End Set 
End Property 

任何人都可以看到我做錯了什麼?

爲了詳細闡述一下,我使用了像這樣的屬性聲明來綁定複合控件上的文本框,並且我試圖爲組合框,它的數據源至少實現類似它的功能。

<Category("Appearance"), 
Bindable(True), 
Browsable(True), 
EditorBrowsable(EditorBrowsableState.Always), 
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _ 
Public Property Title As String 
    Get 
     Return TitleTextbox.Text 
    End Get 

    Set(value As String) 
     TitleTextbox.Text = value 
    End Set 
End Property 

回答

3

我只是猜測在這裏,但屬性編輯器可能不知道如何處理類型爲ComboBox的屬性。

您是否嘗試過暴露ComboBox的DataSource屬性?

<Category("Data"), Bindable(True), _ 
Browsable(True), EditorBrowsable(EditorBrowsableState.Always), _ 
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible), _ 
AttributeProvider(GetType(IListSource))> _ 
Public Property RollbackComboDataSource As Object 
    Get 
     Return cboRollBack.DataSource 
    End Get 
    Set(value As Object) 
     cboRollBack.DataSource = value 
    End Set 
End Property 
+0

感謝科裏,我會給你一個鏡頭 - 我認爲這是正確的路線。 – Mordy

+0

明白了:)好的科裏 - 你是個傳奇人物!我不得不設置displayname和valuename字段來從數據源中選擇正確的列,但這在用戶控件本身中是微不足道的。 – Mordy

+0

甜!現在很高興它的工作:) –

相關問題