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.MappingNametypename
значение , где typename
заменяется именем типа объекта. Также обратите внимание, что в свойстве MappingName учитывается регистр; имя типа должно быть точно совпадать. Пример см. в MappingName свойстве .
Можно также привязать DataGrid к ArrayList. Особенность заключается в ArrayList том, что он может содержать объекты нескольких типов, но DataGrid может привязаться к такому списку только в том случае, если все элементы в списке имеют тот же тип, что и первый элемент. Это означает, что все объекты должны быть одного типа или наследоваться от того же класса, что и первый элемент в списке. Например, если первым элементом в списке является , вторым элементом Controlможет быть TextBox (который наследуется от Control). Если, с другой стороны, первым элементом TextBoxявляется , второй объект не может быть Control. Кроме того, при привязке ArrayList в объекте должны быть элементы. ArrayList Пустое приведет к пустой сетке. При привязке ArrayListк свойству присвойте MappingName свойству DataGridTableStyle значение ArrayList (имя типа).
Значение по умолчанию — это имя списка, управляемого для этой сетки CurrencyManager . Для CurrencyManager задается DataGridTableStyle с помощью конструктора DataGridTableStyle .
Событие MappingNameChanged возникает при MappingName изменении значения.