This documentation is archived and is not being maintained.

DataGridTableStyle.MappingName Property

Gets or sets the name used to map this table to a specific data source.

[Visual Basic]
Public Property MappingName As String
[C#]
public string MappingName {get; set;}
[C++]
public: __property String* get_MappingName();
public: __property void set_MappingName(String*);
[JScript]
public function get MappingName() : String;
public function set MappingName(String);

Property Value

The name used to map this grid to a specific data source.

Remarks

To bind the System.Windows.Forms.DataGrid to a strongly typed array of objects, the object must contain public properties. To create a DataGridTableStyle that displays such an array, set the MappingName property to classname[] where classname is replaced by the class name. Also note that the MappingName property is case-sensitive.

You can also bind the DataGrid to an ArrayList. A feature of the ArrayList is that it can contain objects of multiple types, but the DataGrid can only bind to such a list when all items in the list are of the same type as the first item. This means that all objects must either be of the same type, or they must inherit from the same class as the first item in the list. For example, if the first item in a list is a Control object, the second item could be a TextBox (which inherits from Control). If, on the other hand, the first item is a TextBox, the second object cannot be a Control. Further, the ArrayList must have items in it when it is bound. An empty ArrayList will result in an empty grid. When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name).

The default is the name of the list managed by the CurrencyManager for this grid. The CurrencyManager for the DataGridTableStyle is set using the DataGridTableStyle constructor.

The MappingNameChanged event occurs when the MappingName value changes.

Example

[Visual Basic, C#, C++] The following example creates an array of Widget objects and binds a System.Windows.Forms.DataGrid control to the array. The code then creates a DataGridTableStyle and sets the MappingName to the name of the class plus brackets.

[Visual Basic] 
Sub BindToArray()
    ' Creates an array of Widget objects (defined below).
    Dim Widgets(2) As Widget
    Dim tempWidget As Widget

    tempWidget = New Widget()
    tempWidget.Model = "AAA"
    tempWidget.Id = "A100"
    tempWidget.Price = Convert.ToDecimal(3.8)
    Widgets(0) = tempWidget

    ' The first Widget includes an array of Part objects.
    Dim p1 As New Part()
    p1.PartId = "PartX"
    Dim p2 As New Part()
    p2.PartId = "PartY"

    ' Note that the Widgets.Parts property returns an ArrayList.
    ' Add the parts to the ArrayList using the AddRange method.
    tempWidget.Parts.AddRange(New Part() {p1, p2})

    tempWidget = New Widget()
    tempWidget.Model = "BBB"
    tempWidget.Id = "B100"
    tempWidget.Price = Convert.ToDecimal(1.52)
    Widgets(1) = tempWidget

    tempWidget = New Widget()
    tempWidget.Id = "CCC"
    tempWidget.Model = "B100"
    tempWidget.Price = Convert.ToDecimal(2.14)
    Widgets(2) = tempWidget

    DataGrid1.SetDataBinding(Widgets, "")
    CreateTableStyle()
End Sub


Private Sub CreateTableStyle()
    ' Creates two DataGridTableStyle objects, one for the Widget
    ' array, and one for the Parts ArrayList.
    Dim widgetTable As New DataGridTableStyle()
    ' Sets the MappingName to the class name plus brackets.    
    widgetTable.MappingName = "Widget[]"

    ' Sets the AlternatingBackColor so you can see the difference.
    widgetTable.AlternatingBackColor = System.Drawing.Color.LightBlue

    ' Creates three column styles.
    Dim modelColumn As New DataGridTextBoxColumn()
    modelColumn.MappingName = "Model"
    modelColumn.HeaderText = "Model"

    Dim IdColumn As New DataGridTextBoxColumn()
    IdColumn.MappingName = "Id"
    IdColumn.HeaderText = "Id"

    Dim priceColumn As New DataGridTextBoxColumn()
    priceColumn.MappingName = "Price"
    priceColumn.HeaderText = "Price"
    priceColumn.Format = "c"

    ' Adds the column styles to the grid table style.
    widgetTable.GridColumnStyles.Add(modelColumn)
    widgetTable.GridColumnStyles.Add(IdColumn)
    widgetTable.GridColumnStyles.Add(priceColumn)

    ' Add the table style to the collection, but clear the 
    ' collection first.
    DataGrid1.TableStyles.Clear()
    DataGrid1.TableStyles.Add(widgetTable)

    ' Create another table style, one for the related data.
    Dim partsTable As New DataGridTableStyle()
    ' Set the MappingName to an ArrayList. Note that you need not 
    ' include brackets.
    partsTable.MappingName = "ArrayList"
    Dim partIdColumn As New DataGridTextBoxColumn()
    partIdColumn.MappingName = "PartID"
    partIdColumn.HeaderText = "Part ID"
    partsTable.GridColumnStyles.Add(partIdColumn)

    DataGrid1.TableStyles.Add(partsTable)
End Sub


Public Class Widget
    Private myModel As String
    Private myId As String
    Private myPrice As Decimal

    ' Use an ArrayList to create a related collection.
    Private myParts As New ArrayList()

    Public Property Model() As String
        Get
            Return myModel
        End Get
        Set(ByVal Value As String)
            myModel = Value
        End Set
    End Property

    Public Property Id() As String
        Get
            Return myId
        End Get
        Set(ByVal Value As String)
            myId = Value
        End Set
    End Property

    Public Property Parts() As ArrayList
        Get
            Return myParts
        End Get
        Set(ByVal Value As ArrayList)
            myParts = Value
        End Set
    End Property

    Public Property Price() As Decimal
        Get
            Return myPrice
        End Get
        Set(ByVal Value As Decimal)
            myPrice = Value
        End Set
    End Property
End Class


Public Class Part
    Private myPartId As String


    Public Property PartId() As String
        Get
            Return myPartId
        End Get
        Set(ByVal Value As String)
            myPartId = Value
        End Set
    End Property
End Class

[C#] 

        private void BindToArray()
        {
            // Create an array of Machine objects (defined below).
            Machine[] Machines = new Machine[3];
            Machine tempMachine;

            tempMachine= new Machine();
            tempMachine.Model = "AAA";
            tempMachine.Id= "A100";
            tempMachine.Price= Convert.ToDecimal(3.80);
            Machines[0]=tempMachine;

            // The first Machine includes an array of Part objects.
            Part p1 = new Part();
            p1.PartId= "PartX";
            Part p2 = new Part();
            p2.PartId= "PartY";

            // Note that the Machines.Parts property returns an ArrayList.
            // Add the parts to the ArrayList using the AddRange method.
            tempMachine.Parts.AddRange (new Part[]{p1, p2});;

            tempMachine= new Machine();
            tempMachine.Model = "BBB";
            tempMachine.Id= "B100";
            tempMachine.Price= Convert.ToDecimal(1.52);
            Machines[1]=tempMachine;

            tempMachine= new Machine();
            tempMachine.Id= "CCC";
            tempMachine.Model = "B100";
            tempMachine.Price= Convert.ToDecimal(2.14);
            Machines[2]=tempMachine;
    
            dataGrid1.SetDataBinding(Machines, "");
            CreateTableStyle();
        }

        private void CreateTableStyle()
        {
            // Creates two DataGridTableStyle objects, one for the Machine
            // array, and one for the Parts ArrayList.

            DataGridTableStyle MachineTable = new DataGridTableStyle();
            // Sets the MappingName to the class name plus brackets.    
            MachineTable.MappingName= "Machine[]";

            // Sets the AlternatingBackColor so you can see the difference.
            MachineTable.AlternatingBackColor= System.Drawing.Color.LightBlue;

            // Creates three column styles.
            DataGridTextBoxColumn modelColumn = new DataGridTextBoxColumn();
            modelColumn.MappingName= "Model";
            modelColumn.HeaderText= "Model";

            DataGridTextBoxColumn IdColumn = new DataGridTextBoxColumn();
            IdColumn.MappingName= "Id";
            IdColumn.HeaderText= "Id";

            DataGridTextBoxColumn priceColumn = new DataGridTextBoxColumn();
            priceColumn.MappingName= "Price";
            priceColumn.HeaderText= "Price";
            priceColumn.Format = "c";

            // Adds the column styles to the grid table style.
            MachineTable.GridColumnStyles.Add(modelColumn);
            MachineTable.GridColumnStyles.Add(IdColumn);
            MachineTable.GridColumnStyles.Add(priceColumn);

            // Add the table style to the collection, but clear the 
            // collection first.
            dataGrid1.TableStyles.Clear();
            dataGrid1.TableStyles.Add(MachineTable);

            // Create another table style, one for the related data.
            DataGridTableStyle partsTable = new DataGridTableStyle();
            // Set the MappingName to an ArrayList. Note that you need not 
            // include brackets.
            partsTable.MappingName= "ArrayList";
            DataGridTextBoxColumn partIdColumn = new DataGridTextBoxColumn();
            partIdColumn.MappingName= "PartID";
            partIdColumn.HeaderText = "Part ID";
            partsTable.GridColumnStyles.Add(partIdColumn);

            dataGrid1.TableStyles.Add(partsTable);

        }
        public class Machine
        {
            private string model;
            private string id;
            private decimal price;

            // Use an ArrayList to create a related collection.
            private ArrayList parts = new ArrayList();
        
            public string Model
            {
                get{return model;}
                set{model=value;}
            }
            public string Id
            {
                get{return id;}
                set{id = value;}
            }
            public ArrayList Parts
            {
                get{return parts;}
                set{parts = value;}
            }

            public decimal Price
            {
                get{return price;}
                set{price = value;}
            }
        }

        public class Part
        {
            private string partId;
        
            public string PartId
            {
                get{return partId;}
                set{partId = value;}
            }
        }

[C++] 

private:
    void BindToArray() {
        // Create an array of Machine objects (defined below).
        Machine* Machines[] = new Machine*[3];
        Machine* tempMachine;
        tempMachine = new Machine();
        tempMachine->Model = S"AAA";
        tempMachine->Id= S"A100";
        tempMachine->Price= Convert::ToDecimal(3.80);
        Machines->Item[0]=tempMachine;

        // The first Machine includes an array of Part objects.
        Part* p1 = new Part();
        p1->PartId= S"PartX";
        Part* p2 = new Part();
        p2->PartId= S"PartY";

        // Note that the Machines::Parts property returns an ArrayList.
        // Add the parts to the ArrayList using the AddRange method.
        Part* temp0[] = {p1, p2};
        tempMachine->Parts->AddRange(
            dynamic_cast<System::Collections::ICollection*>(temp0));;
        tempMachine = new Machine();
        tempMachine->Model = S"BBB";
        tempMachine->Id= S"B100";
        tempMachine->Price= Convert::ToDecimal(1.52);
        Machines->Item[1]=tempMachine;
        tempMachine = new Machine();
        tempMachine->Id= S"CCC";
        tempMachine->Model = S"B100";
        tempMachine->Price= Convert::ToDecimal(2.14);
        Machines->Item[2] = tempMachine;

        dataGrid1->SetDataBinding(Machines, S"");
        CreateTableStyle();
    }

private:
    void CreateTableStyle() {
        // Creates two DataGridTableStyle objects, one for the Machine
        // array, and one for the Parts ArrayList.

        DataGridTableStyle* MachineTable = new DataGridTableStyle();
        // Sets the MappingName to the class name plus brackets.
        MachineTable->MappingName= S"Machine->Item[]";

        // Sets the AlternatingBackColor so you can see the difference.
        MachineTable->AlternatingBackColor = System::Drawing::Color::LightBlue;

        // Creates three column styles.
        DataGridTextBoxColumn* modelColumn = new DataGridTextBoxColumn();
        modelColumn->MappingName= S"Model";
        modelColumn->HeaderText= S"Model";

        DataGridTextBoxColumn* IdColumn = new DataGridTextBoxColumn();
        IdColumn->MappingName= S"Id";
        IdColumn->HeaderText= S"Id";

        DataGridTextBoxColumn* priceColumn = new DataGridTextBoxColumn();
        priceColumn->MappingName= S"Price";
        priceColumn->HeaderText= S"Price";
        priceColumn->Format = S"c";

        // Adds the column styles to the grid table style.
        MachineTable->GridColumnStyles->Add(modelColumn);
        MachineTable->GridColumnStyles->Add(IdColumn);
        MachineTable->GridColumnStyles->Add(priceColumn);

        // Add the table style to the collection, but clear the
        // collection first.
        dataGrid1->TableStyles->Clear();
        dataGrid1->TableStyles->Add(MachineTable);

        // Create another table style, one for the related data.
        DataGridTableStyle* partsTable = new DataGridTableStyle();
        // Set the MappingName to an ArrayList. Note that you need not
        // include brackets.
        partsTable->MappingName= S"ArrayList";
        DataGridTextBoxColumn* partIdColumn = new DataGridTextBoxColumn();
        partIdColumn->MappingName= S"PartID";
        partIdColumn->HeaderText = S"Part ID";
        partsTable->GridColumnStyles->Add(partIdColumn);

        dataGrid1->TableStyles->Add(partsTable);

    };

    __gc class Machine {
    private:
        String*  model;
        String*  id;
        Decimal  price;

        // Use an ArrayList to create a related collection.
        ArrayList* parts;

    public:
        Machine() {
            parts = new ArrayList();
        }

        __property String* get_Model() {
            return model;
        }
        __property void set_Model(String* value) {
            model=value;
        }


        __property String* get_Id() {
            return id;
        }
        __property void set_Id(String* value) {
            id = value;
        }


        __property ArrayList* get_Parts() {
            return parts;
        }
        __property void set_Parts(ArrayList* value) {
            parts = value;
        }


        __property Decimal get_Price() {
            return price;
        }
        __property void set_Price(Decimal value) {
            price = value;
        }

    };
public:
    __gc class Part {
    private:
        String*  partId;

    public:
        __property String* get_PartId() {
            return partId;
        }
        __property void set_PartId(String* value) {
            partId = value;
        }

    };

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

See Also

DataGridTableStyle Class | DataGridTableStyle Members | System.Windows.Forms Namespace | CurrencyManager | DataGrid | DataGridColumnStyle | TableStyles

Show: