Export (0) Print
Expand All

DataGridTableStyle.MappingName Property

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

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public string MappingName { get; set; }

Property Value

Type: System.String
The name used to map this grid to a specific data source.

To bind the DataGrid to a strongly typed array of objects, the object type must contain public properties. To create a DataGridTableStyle that displays the array, set the DataGridTableStyle.MappingName property to typename where typename is replaced by the name of the object type. Also note that the MappingName property is case-sensitive; the type name must be matched exactly. See the MappingName property for an example.

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, 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.

The following code 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.


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;}
    }
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft