DataGridTableStyle.MappingName 属性

定义

获取或设置用于将此表映射到特定数据源的名称。

public:
 property System::String ^ MappingName { System::String ^ get(); void set(System::String ^ value); };
public string MappingName { get; set; }
member this.MappingName : string with get, set
Public Property MappingName As String

属性值

用于将此网格映射到特定数据源的名称。

示例

下面的代码示例创建 对象的数组 Widget ,并将 控件 System.Windows.Forms.DataGrid 绑定到 数组。 然后,代码创建 , DataGridTableStyle 并将 设置为 MappingName 类的名称和括号。


    void BindToArray()
    {
        // Create an array of Machine objects (defined below).
        array<Machine^>^ Machines = gcnew array<Machine^>(3);
        Machine^ tempMachine;

        tempMachine = gcnew 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 = gcnew Part();
        p1->PartId = "PartX";
        Part^ p2 = gcnew 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(gcnew array<Part^> {p1, p2}); 

        tempMachine = gcnew Machine();
        tempMachine->Model = "BBB";
        tempMachine->Id = "B100";
        tempMachine->Price = Convert::ToDecimal(1.52);
        Machines[1] = tempMachine;

        tempMachine = gcnew Machine();
        tempMachine->Id = "CCC";
        tempMachine->Model = "B100";
        tempMachine->Price = Convert::ToDecimal(2.14);
        Machines[2] = tempMachine;

        bindedDataGrid->SetDataBinding(Machines, "");
        CreateTableStyle();
    }

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

        DataGridTableStyle^ machineTable = gcnew 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 = gcnew DataGridTextBoxColumn();
        modelColumn->MappingName = "Model";
        modelColumn->HeaderText = "Model";

        DataGridTextBoxColumn^ idColumn = gcnew DataGridTextBoxColumn();
        idColumn->MappingName = "Id";
        idColumn->HeaderText = "Id";

        DataGridTextBoxColumn^ priceColumn = gcnew 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.
        bindedDataGrid->TableStyles->Clear();
        bindedDataGrid->TableStyles->Add(machineTable);

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

private:
    ref class Machine
    {
    private:
        String^ machineModel;
        String^ machineID;
        Decimal machinePrice;

        // Use an ArrayList to create a related collection.
        ArrayList^ machineParts;

    public:
        Machine()
        {
            machineParts = gcnew ArrayList; 
        }   

        property String^ Model
        {
            String^ get()
            {
                return machineModel;
            }
            void set(String^ value)
            {
                machineModel = value;
            }
        }

        property String^ Id
        {
            String^ get()
            {
                return machineID;
            }
            void set(String^ value)
            {
                machineID = value;
            }
        }

        property ArrayList^ Parts
        {
            ArrayList^ get()
            {
                return machineParts;
            }
            void set(ArrayList^ value)
            {
                machineParts = value;
            }
        }

        property Decimal Price
        {
            Decimal get()
            {
                return machinePrice;
            }
            void set(Decimal value)
            {
                machinePrice = value;
            }
        }
    };

private:
    ref class Part
    {
    private:
        String^ partId;

    public:
        property String^ PartId
        {
            String^ get()
            {
                return partId;
            }
            void set(String^ value)
            {
                partId = value;
            }
        }
    };

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

注解

若要将 DataGrid 绑定到对象的强类型数组,该对象类型必须包含公共属性。 若要创建 DataGridTableStyle 显示数组的 ,请将 DataGridTableStyle.MappingName 属性设置为 typename ,其中 typename 替换为对象类型的名称。 另请注意, MappingName 属性区分大小写;类型名称必须完全匹配。 有关示例, MappingName 请参阅 属性。

还可以将 DataGridArrayList绑定到 。 的 ArrayList 一个功能是它可以包含多个类型的 对象,但 DataGrid 仅当列表中的所有项都与第一项属于同一类型时, 才能绑定到此类列表。 这意味着所有对象必须属于同一类型,或者它们必须继承自与列表中的第一项相同的类。 例如,如果列表中的第一项 Control是 ,则第二项 TextBox 可能是继承自 Control) 的 (。 另一方面,如果第一项 TextBox为 ,则第二个对象不能为 Control。 此外, ArrayList 绑定时中必须包含项。 空 ArrayList 将导致空网格。 绑定到 时ArrayList,将 的 DataGridTableStyle 设置为MappingName“ArrayList”, (类型名称) 。

默认值为此网格的 管理 CurrencyManager 的列表的名称。 CurrencyManager使用 DataGridTableStyle 构造函数设置 的 DataGridTableStyle

MappingNameChanged 值更改时 MappingName 发生 该事件。

适用于

另请参阅