C1.Win.C1FlexGrid Namespace : MultiColumnDictionary Class |
'Declaration
<DefaultMemberAttribute("Item")> Public Class MultiColumnDictionary Inherits System.Collections.Specialized.ListDictionary Implements IC1MultiColumnDictionary, IC1MultiColumnDictionary2
'Usage
Dim instance As MultiColumnDictionary
[DefaultMember("Item")] public class MultiColumnDictionary : System.Collections.Specialized.ListDictionary, IC1MultiColumnDictionary, IC1MultiColumnDictionary2
[DefaultMember("Item")] public ref class MultiColumnDictionary : public System.Collections.Specialized.ListDictionary, IC1MultiColumnDictionary, IC1MultiColumnDictionary2
The code below creates an unbound two-column data map and assigns it to a grid column:
The map consists of three items, each with two columns. Because the autoKeys parameter was set to true in the map's constructor, the map will have unique integer keys for each value,and those integers will be stored in the grid cells. If autoKeys had been set to false, the strings themselves would be used as keys and stored in the grid cells.
The code below creates a bound data map and assigns it to a grid column:
This map is bound to an Employees DataTable. The keyColumn parameter is set to "EmployeeID", causing this field to be used as a key. When the grid is edited, the values stored in the cells will be the employee's ID. However, this value is never displayed be the grid.
The drop-down list will show the employee's first name, last name, and country, as specified by the columnNames parameter.
When the list is closed, the grid will display the employee's last name, as specified by the displayColumn parameter.
Note that this map is dynamically bound to the data source, so if the employees table is modified, the editor list will reflect the changes automatically.
Note also that the usual combo editing features such as auto-search and double-click cycling still work.
// create string-based MultiColumnDictionary and assign it to column // note: this will automatically generate keys of type 'int' for each item, // the key values will be stored in the grid. string text = "Row1, Col1\tRow1, Col2|Row2, Col1\tRow2, Col3|Row2, Col1\tRow3, Col2"; MultiColumnDictionary map = new MultiColumnDictionary(text, 0, true); _flex.Cols[1].DataMap = map;
// create data-based MultiColumnDictionary and assign it to column // notes: the list will automatically be updated is the data source changes. DataTable dt = GetDataTable("employees"); string[] columnNames = new string[] { "FirstName", "LastName", "Country" }; MultiColumnDictionary map = new MultiColumnDictionary(dt, "EmployeeID", columnNames, 1); _flex.Cols[2].DataMap = map;
System.Object
System.Collections.Specialized.ListDictionary
C1.Win.C1FlexGrid.MultiColumnDictionary
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2