Vázání dat k ovládacím prvkům v řešeních pro systém Office

Můžete svázat ovládací prvky model Windows Forms a prvky hostitele v dokumentu Microsoft Office Word nebo Microsoft Office Excel list ke zdroji dat, takže ovládací prvky automaticky zobrazí data.Data můžete svázat ovládací prvky v projekty na úrovni aplikace a úrovni dokumentu.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace v Office 2013 a v Office 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Ovládací prvky hostitel rozšířit objekty, které jsou v aplikaci Word a Excel objektové modely, například ovládací prvky obsahu v aplikaci Word a pojmenované oblasti v aplikaci Excel.Další informace naleznete v tématu Přehled hostitelských položek a hostitelských ovládacích prvků.

Model Windows Forms a ovládací prvky hostitel používá model Windows Forms model vázání dat, který podporuje obě Jednoduché datové vazby a komplexní datové vazby ke zdrojům dat, jako jsou datové sady a data tabulky.Úplné informace o model vázání dat v model Windows Forms Datové vazby a rozhraní Windows Forms.

odkaz na video Související video ukázku naleznete v tématu Jak provést I: spotřebovat Data databáze v aplikaci Excel?.

Jednoduché datové vazby

Jednoduché datové vazby existuje, pokud vlastnost ovládacího prvku je vázán na jeden datový prvek, například hodnota v tabulce data.Například NamedRange má ovládací prvek Value2 vlastnost, která mohou být vázány na pole v objektu dataset.Pokud pole v objektu dataset změní, změní se také hodnoty v pojmenované oblasti.Všechny kromě hostování ovládacích prvků, XMLNodes řízení, podporují jednoduché datové vazby.XMLNodes Ovládací prvek kolekce a proto nepodporuje datové vazby.

Provést jednoduché datové vazby ovládacího prvku hostitele, přidat Binding se DataBindings vlastnost ovládacího prvku.A Binding objekt představuje jednoduché vazby mezi hodnoty vlastnosti ovládacího prvku a hodnotu datový prvek.

Následující příklad ukazuje, jak vytvořit vazbu Value2 vlastnost prvek dat v projektu na úrovni dokumentu.

Dim binding1 As New Binding("Value2", ds, "Customers.Names", True)
namedRange1.DataBindings.Add(binding1)
Binding binding1 = new Binding("Value2", ds, "Customers.Names", true);
namedRange1.DataBindings.Add(binding1);

Návody, který ukazuje jednoduché datové vazby, viz Návod: Jednoduché datové vazby v projektech na úrovni dokumentu pro úroveň dokumentů projekt a Návod: Jednoduché datové vazby v projektech na úrovni aplikace projektu na úrovni aplikace.

Komplexní datové vazby

Komplexní datové vazby existuje, když je vlastnost ovládacího prvku je vázán na více než jeden prvek dat, například více sloupců v tabulce data.ListObject Ovládání pro aplikaci Excel je pouze hostitelského ovládacího prvku, který podporuje komplexní datové vazby.Existuje také mnoho model Windows Forms ovládací prvky, které podporují komplexní datové vazby, jako DataGridView řízení.

Provádět komplexní datové vazby nastavena DataSource vlastnost ovládacího prvku na objekt zdroje dat podporuje komplexní datové vazby.Například DataSource vlastnost ListObject více sloupců v tabulce dat může být ovládací prvek vázán.Všechna data v tabulce dat se zobrazí v ListObject řízení a jako data v tabulce změní data ListObject také změní.Seznam zdrojů dat, které lze použít pro komplexní datové vazby, viz Zdroje dat podporované rozhraním Windows Forms.

Následující příklad kódu vytvoří DataSet se dvěma DataTable objekty a naplní jednu z tabulek s daty.Kód poté vytvoří vazbu ListObject tabulky, která obsahuje data.V tomto příkladu je úroveň dokumentu aplikace Excel v projektu.

Private Sub ListObject_DataSourceAndMember()
        ' Create a DataSet and two DataTables. 
        Dim ordersDataSet As New DataSet("ordersDataSet")
        Dim tableCustomers As New DataTable("Customers")
        Dim tableProducts As New DataTable("Products")
        ordersDataSet.Tables.Add(tableCustomers)
        ordersDataSet.Tables.Add(tableProducts)

        ' Add a data to the Customers DataTable.
        tableCustomers.Columns.Add(New DataColumn("LastName"))
        tableCustomers.Columns.Add(New DataColumn("FirstName"))
        Dim dr As DataRow = tableCustomers.NewRow()
        dr("LastName") = "Chan"
        dr("FirstName") = "Gareth"
        tableCustomers.Rows.Add(dr)

        ' Create a list object. 
        Dim List1 As Microsoft.Office.Tools.Excel.ListObject = _
            Me.Controls.AddListObject(Me.Range( _
            "A1"), "Customers")

        ' Bind the list object to the Customers table.
        List1.AutoSetDataBoundColumnHeaders = True
        List1.DataSource = ordersDataSet
        List1.DataMember = "Customers" 

    End Sub
private void ListObject_DataSourceAndMember()
{
    // Create a DataSet and two DataTables.
    DataSet ordersDataSet = new DataSet("ordersDataSet");
    DataTable tableCustomers = new DataTable("Customers");
    DataTable tableProducts = new DataTable("Products");
    ordersDataSet.Tables.Add(tableCustomers);
    ordersDataSet.Tables.Add(tableProducts);

    // Add a data to the Customers DataTable.
    tableCustomers.Columns.Add(new DataColumn("LastName"));
    tableCustomers.Columns.Add(new DataColumn("FirstName"));
    DataRow dr = tableCustomers.NewRow();
    dr["LastName"] = "Chan";
    dr["FirstName"] = "Gareth";
    tableCustomers.Rows.Add(dr);

    // Create a list object.
    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Controls.AddListObject(
        this.Range["A1"], "Customers");

    // Bind the list object to the Customers table.
    list1.AutoSetDataBoundColumnHeaders = true;
    list1.DataSource = ordersDataSet;
    list1.DataMember = "Customers";
}

Návody, které ukazují komplexní datové vazby, viz Návod: Rozšířené datové vazby v projektech na úrovni dokumentu pro úroveň dokumentů projekt a Návod: Rozšířené datové vazby v projektech na úrovni aplikace projektu na úrovni aplikace.

Zobrazení dat v dokumenty a sešitů

V projekty na úrovni dokumentu, můžete použít Zdroje dat okno Ovládací prvky vázaných dat snadno přidat dokumenty nebo sešity, stejným způsobem použít pro model Windows Forms.Další informace o použití Zdroje dat okna, viz Vázání ovládacích prvků Windows Forms k datům v sadě Visual Studio a Okno zdroje dat.

Přetažením ovládacích prvků z okna zdroje dat

Ovládací prvek je vytvořen na dokumentu při přetažení objektu na z Zdroje dat okna.Typ ovládacího prvku, který je vytvořen závisí na zda vazba jednoho sloupce dat nebo více sloupců dat.

V aplikaci Excel NamedRange ovládací prvek je vytvořen na listu pro každé jednotlivé pole a ListObject ovládací prvek je vytvořen pro každou oblast dat, která zahrnuje více řádků a sloupců.Můžete toto výchozí nastavení můžete změnit výběrem tabulky nebo pole v Zdroje dat okna a potom zvolíte jiný ovládací prvek z rozevíracího seznamu.

A ContentControl prvek je přidán do dokumentů.Typ obsahu ovládacího prvku závisí na typu dat pole, které jste vybrali.

Vázání dat v projekty na úrovni dokumentu v době návrhu

Následující témata obsahují příklady vazby dat v době návrhu:

Vázání dat v projekty na úrovni aplikace

V projektech aplikace můžete přidat ovládací prvky pouze v době běhu.Následující témata obsahují příklady vazby dat za běhu:

Aktualizace dat, který je vázán na ovládací prvky hostitele

Vázání dat mezi zdrojem dat a ovládací host zahrnuje aktualizace dat obousměrný.Jednoduché datové vazby změny ve zdroji dat se automaticky projeví v hostiteli ovládacího prvku, ale změny v ovládacím prvku hostitele vyžaduje explicitní volání aktualizace zdroje dat.Důvodem je, že v některých případech změny v jednom poli vázanými daty nejsou přijaty nebyla provázena změny v jiném poli vázanými daty.Můžete mít dvě pole, jeden pro věk a jeden let zkušeností.Zkušenosti nesmí překročit věk.Uživatel nemůže aktualizovat ve věku od 50 do 25 a potom zkušeností z 30 10 Pokud uživatel provede změny současně.Tento problém vyřešit, nejsou aktualizovány pole jednoduché datové vazby, dokud explicitně odesílá aktualizace kódu.

Aktualizace zdroje dat z hostitele ovládací prvky, které umožňují jednoduché datové vazby, je nutné odeslat aktualizace zdroje dat v paměti (jako DataSet nebo DataTable) a databáze back-end, pokud vaše řešení používá jednu.

Není nutné explicitně aktualizovat zdroj dat v paměti při provádění komplexní datové vazby pomocí ListObject řízení.V takovém případě změny automaticky odeslány zdroji dat v paměti bez dodatečného kódu.

Další informace naleznete v tématu Postupy: Aktualizace zdroje dat s použitím dat z hostitelského ovládacího prvku.

Viz také

Úkoly

Postupy: Vytvoření jednoduše připojeného ovládacího prvku na Windows Form

Postupy: Aktualizace dat pomocí TableAdapter

Koncepty

Datové vazby a rozhraní Windows Forms

Vázání ovládacích prvků Windows Forms k datům v sadě Visual Studio

Ukládání dat v datových sadách

Ukládaní dat do mezipaměti

Další zdroje

Jak i dat z databáze v aplikaci Excel spotřebovat?

Data v řešeních pro systém Office