更新:2007 年 11 月
为 Visual Studio Tools for Office 解决方案中的宿主控件的 IBindableComponent 接口提供默认实现。
命名空间:  Microsoft.VisualStudio.Tools.Office
程序集:  Microsoft.Office.Tools.v9.0(在 Microsoft.Office.Tools.v9.0.dll 中)
语法
声明
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public MustInherit Class RemoteBindableComponent _
    Inherits RemoteComponent _
    Implements IBindableComponent, IComponent, IDisposable
用法
Dim instance As RemoteBindableComponent
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public abstract class RemoteBindableComponent : RemoteComponent, 
    IBindableComponent, IComponent, IDisposable
备注
可以绑定到从 RemoteBindableComponent 类继承的数据的宿主控件。此类不适于在代码中直接使用。
有关宿主控件的更多信息,请参见 宿主项和宿主控件概述。
示例
下面的代码示例将一个单元格 NamedRange 控件(从 RemoteBindableComponent 派生)、一个具有单个名称列的 DataSet 和一个 Button 添加到当前工作表。该示例使用 DataBindings 属性将 DataSet 绑定到 NamedRange 的 Value2 属性。当单击 Button 时,该示例使用 BindingContext 属性显示 NamedRange 中的下一个名称。
Private namedRange1 As Microsoft.Office.Tools.Excel.NamedRange
Private WithEvents button1 As Microsoft.Office.Tools.Excel.Controls.Button
Private customerNames As String() = _
    {"Reggie", "Sally", "Henry", "Christine"}
Private ds As DataSet
Private Sub SetBindingContext()
    namedRange1 = Me.Controls.AddNamedRange(Me.Range("A1", _
        System.Type.Missing), "namedRange1")
    ' Create a button that scrolls through the data 
    ' displayed in the NamedRange.
    button1 = Me.Controls.AddButton(50, 20, 100, 20, "button1")
    button1.Text = "Display next item"
    ' Create a data table with one column.
    ds = New DataSet()
    Dim table As DataTable = ds.Tables.Add("Customers")
    Dim column1 As New DataColumn("Names", GetType(String))
    table.Columns.Add(column1)
    ' Add the names to the table.
    Dim row As DataRow
    Dim i As Integer
    For i = 0 To customerNames.Length - 1
        row = table.NewRow()
        row("Names") = customerNames(i)
        table.Rows.Add(row)
    Next i
    ' Create a new Binding that links the Value2 property
    ' of the NamedRange and the Names column.
    Dim binding1 As New Binding("Value2", ds, "Customers.Names", True)
    namedRange1.DataBindings.Add(binding1)
End Sub
' Displays the next data item in the NamedRange.
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
    Handles button1.Click
    If Not (namedRange1.BindingContext Is Nothing) Then
        Dim bindingManager1 As BindingManagerBase = _
            namedRange1.BindingContext(ds, "Customers")
        ' Display the next item.
        If bindingManager1.Position < bindingManager1.Count - 1 Then
            bindingManager1.Position += 1
            ' Display the first item.
        Else
            bindingManager1.Position = 0
        End If
    End If
End Sub
private Microsoft.Office.Tools.Excel.NamedRange namedRange1;
private Microsoft.Office.Tools.Excel.Controls.Button button1;
private string[] customerNames = 
    { "Reggie", "Sally", "Henry", "Christine" };
private DataSet ds;
private void SetBindingContext()
{
    namedRange1 = this.Controls.AddNamedRange(
        this.Range["A1", missing], "namedRange1");
    // Create a button that scrolls through the data 
    // displayed in the NamedRange.
    button1 = this.Controls.AddButton(50, 20, 100, 20,
        "button1");
    button1.Text = "Display next item";
    button1.Click += new EventHandler(button1_Click);
    // Create a data table with one column.
    ds = new DataSet();
    DataTable table = ds.Tables.Add("Customers");
    DataColumn column1 = new DataColumn("Names", typeof(string));
    table.Columns.Add(column1);
    // Add the names to the table.
    DataRow row;
    for (int i = 0; i < customerNames.Length; i++)
    {
        row = table.NewRow();
        row["Names"] = customerNames[i];
        table.Rows.Add(row);
    }
    // Create a new Binding that links the Value2 property
    // of the NamedRange and the Names column.
    Binding binding1 = new Binding("Value2", ds, "Customers.Names", true);
    namedRange1.DataBindings.Add(binding1);
}
// Displays the next data item in the NamedRange.
void button1_Click(object sender, EventArgs e)
{
    if (namedRange1.BindingContext != null)
    {
        BindingManagerBase bindingManager1 =
            namedRange1.BindingContext[ds, "Customers"];
        // Display the next item.
        if (bindingManager1.Position < bindingManager1.Count - 1)
        {
            bindingManager1.Position++;
        }
        // Display the first item.
        else
        {
            bindingManager1.Position = 0;
        }
    }
}
继承层次结构
System.Object
  Microsoft.VisualStudio.Tools.Office.RemoteComponent
    Microsoft.VisualStudio.Tools.Office.RemoteBindableComponent
      Microsoft.Office.Tools.Excel.Chart
      Microsoft.Office.Tools.Excel.ListObject
      Microsoft.Office.Tools.Excel.NamedRange
      Microsoft.Office.Tools.Excel.XmlMappedRange
      Microsoft.Office.Tools.Word.Bookmark
      Microsoft.Office.Tools.Word.ContentControlBase
      Microsoft.Office.Tools.Word.XMLNode
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
另请参见
参考
Microsoft.VisualStudio.Tools.Office 命名空间