RemoteBindableComponent, classe (System 2007)

Mise à jour : novembre 2007

Fournit une implémentation par défaut de l'interface IBindableComponent pour les contrôles hôtes dans les solutions Visual Studio Tools pour Office.

Espace de noms :  Microsoft.VisualStudio.Tools.Office
Assembly :  Microsoft.Office.Tools.v9.0 (dans Microsoft.Office.Tools.v9.0.dll)

Syntaxe

<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

Notes

Les contrôles hôtes qui peuvent être liés aux données héritent de la classe RemoteBindableComponent. Cette classe n'est pas destinée à être utilisée directement dans le code.

Pour plus d'informations sur les contrôles hôtes, consultez Vue d'ensemble des éléments hôtes et des contrôles hôtes.

Exemples

L'exemple de code suivant ajoute un seul contrôle NamedRange de cellule (provenant de RemoteBindableComponent), un DataSet comportant une seule colonne de noms et un Button à la feuille de calcul active. L'exemple utilise la propriété DataBindings pour lier DataSet à la propriété Value2 de NamedRange. Lorsque l'utilisateur clique sur Button, l'exemple utilise la propriété BindingContext pour afficher le nom suivant de 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;
        }
    }
}

Hiérarchie d'héritage

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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres RemoteBindableComponent

Microsoft.VisualStudio.Tools.Office, espace de noms

Autres ressources

Vue d'ensemble des éléments hôtes et des contrôles hôtes