Partilhar via


DataGridTableStyle.MappingName Propriedade

Definição

Obtém ou define o nome usado para mapear esta tabela para uma fonte de dados específica.

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

Valor da propriedade

O nome usado para mapear esta grade para uma fonte de dados específica.

Exemplos

O exemplo de código a seguir cria uma matriz de Widget objetos e associa um System.Windows.Forms.DataGrid controle à matriz . Em seguida, o código cria um DataGridTableStyle e define o MappingName como o nome da classe mais colchetes.


    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

Comentários

Para associar o DataGrid a uma matriz fortemente tipada de objetos, o tipo de objeto deve conter propriedades públicas. Para criar um DataGridTableStyle que exibe a matriz, defina a DataGridTableStyle.MappingName propriedade como typename onde typename é substituída pelo nome do tipo de objeto. Observe também que a MappingName propriedade diferencia maiúsculas de minúsculas; o nome do tipo deve ser correspondido exatamente. Consulte a MappingName propriedade para obter um exemplo.

Você também pode associar o DataGrid a um ArrayList. Um recurso do ArrayList é que ele pode conter objetos de vários tipos, mas o DataGrid só pode se associar a essa lista quando todos os itens na lista são do mesmo tipo que o primeiro item. Isso significa que todos os objetos devem ser do mesmo tipo ou devem herdar da mesma classe que o primeiro item da lista. Por exemplo, se o primeiro item em uma lista for um Control, o segundo item poderá ser um TextBox (que herda de Control). Se, por outro lado, o primeiro item for um TextBox, o segundo objeto não poderá ser um Control. Além disso, o ArrayList deve ter itens quando está associado. Um vazio ArrayList resultará em uma grade vazia. Ao associar a um ArrayList, defina o DataGridTableStyleMappingName de como "ArrayList" (o nome do tipo).

O padrão é o nome da lista gerenciada pelo CurrencyManager para essa grade. O CurrencyManager para o DataGridTableStyle é definido usando o DataGridTableStyle construtor .

O MappingNameChanged evento ocorre quando o MappingName valor é alterado.

Aplica-se a

Confira também