2013-12-13 58 views
0

我有一個組件定義爲:是否可以綁定到屬性上一個組件

public class MyComponent: Component 
{ 
    //constructor, diposal etc omitted for brevity 

    public bool MyBool {get; set;} 
} 

我如何能結合MyBool財產?這實際上是可能的東西,實現System.ComponentModel.Component,還是它必須擴展System.Windows.Forms.Control

回答

0

我設法找到我自己的研究答案,這似乎令人驚異的是我,這是很難找到一個回答這個問題,一旦我發現如何做到這一點:

一個Component缺乏必要屬性來管理綁定。要在Visual Studio設計器中綁定Component,您必須實現IBindableComponent接口。

例如:

public abstract class MyComponent : Component, IBindableComponent 
{ 
    private BindingContext bindingContext; 
    private ControlBindingsCollection dataBindings; 

    [Category("Data")] 
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
    public ControlBindingsCollection DataBindings 
    { 
     get { return dataBindings ?? (dataBindings = new ControlBindingsCollection(this)); } 
    } 

    [Browsable(false)] 
    public BindingContext BindingContext 
    { 
     get { return bindingContext ?? (bindingContext = new BindingContext()); } 
     set { bindingContext = value; } 
    } 
} 

注:DataBindings屬性需要被打上[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]否則綁定在設計中添加不會被序列化

相關問題