[] 
(Showing Draft Content)

Quick Start

This quick start will guide you through the steps of adding a DataGridView control to your application and add data to it using the C1DataCollection class.

Complete the steps given below to see how the DataGridView control appears after data binding:

  1. Create a data source

  2. Bind DataGridView to the data source

The following image shows how the DataGridView control appears after completing the steps above.

The image shows a grid control.

Step 1: Create a data source

  1. Add a new class file, Customer, to the application.

  2. Add the following code to the Customer file. In this example, we are using Customer class to represent data in the DataGridView control.

    Public Class Customer Private _id, _countryId As Integer Private _name, _email, _city As String Private _OrderDate As DateTime Private _orderTotal As Double Shared _rnd As Random = New Random() Shared _firstNames As String() = "Andy|Ben|Charlie|Dan|Ed|Fred|Herb|Jack|Mark|Ted".Split("|"c) Shared _lastNames As String() = "Ambers|Bishop|Cole|Danson|Evers|Frommer|Heath|Myers|Richards|Stevens".Split("|"c) Shared _emailServers As String() = "gmail|yahoo|outlook|aol".Split("|"c) Shared countries As String = "China-Beijing,Shanghai|India-Delhi,Kolkata|United States-Washington,New York|Russia-Moscow,Saint Petersburg|Japan-Tokio,Yokohama" Shared _countries As KeyValuePair(Of String, String())() = countries.Split("|"c).[Select](Function(str) New KeyValuePair(Of String, String())(str.Split("-"c).First(), str.Split("-"c).Skip(1).First().Split(","c))).ToArray() Public Sub New() End Sub Public Sub New(ByVal id As Integer) id = id Name = GetName() Email = String.Format("{0}@{1}.com", (Name.Substring(0, 3)).ToLower(), GetString(_emailServers)) CountryId = _rnd.[Next](gcdocsite__documentlink?toc-item-id=f501218a-c809-4b22-aa4e-c931ef0f9029) Mod _countries.Length Dim cities = _countries(CountryId).Value City = GetString(cities) OrderDate = DateTime.Today.AddDays(-_rnd.[Next](1, 365)).AddHours(_rnd.[Next](0, 24)).AddMinutes(_rnd.[Next](0, 60)) OrderTotal = Math.Round(_rnd.NextDouble() * 10000.0, 2) End Sub Public Property ID As Integer Get Return _id End Get Set(ByVal value As Integer) If value <> _id Then _id = value End If End Set End Property Public Property Name As String Get Return _name End Get Set(ByVal value As String) If value <> _name Then _name = value End If End Set End Property Public Property Email As String Get Return _email End Get Set(ByVal value As String) If value <> _email Then _email = value End If End Set End Property Public Property City As String Get Return _city End Get Set(ByVal value As String) If value <> _city Then _city = value End If End Set End Property Public Property CountryId As Integer Get Return _countryId End Get Set(ByVal value As Integer) If value <> _countryId AndAlso value > -1 AndAlso value < _countries.Length Then _countryId = value End If End Set End Property Public Property OrderDate As DateTime Get Return _OrderDate End Get Set(ByVal value As DateTime) If value <> _OrderDate Then _OrderDate = value End If End Set End Property Public Property OrderTotal As Double Get Return _orderTotal End Get Set(ByVal value As Double) If value <> _orderTotal Then _orderTotal = value End If End Set End Property Private Shared Function GetString(ByVal arr As String()) As String Return arr(_rnd.[Next](arr.Length)) End Function Private Shared Function GetName() As String Return String.Format("{0} {1}", GetString(_firstNames), GetString(_lastNames)) End Function Public ReadOnly Property Country As String Get Return _countries(_countryId).Key End Get End Property Public Shared Function GetCustomerList(ByVal count As Integer) As ObservableCollection(Of Customer) Dim list = New ObservableCollection(Of Customer)() For i As Integer = 0 To count - 1 list.Add(New Customer(i)) Next Return list End Function End Class
public class Customer { int _id, _countryId; string _name, _email, _city; DateTime _OrderDate; double _orderTotal; static Random _rnd = new Random(); static string[] _firstNames = "Andy|Ben|Charlie|Dan|Ed|Fred|Herb|Jack|Mark|Ted".Split('|'); static string[] _lastNames = "Ambers|Bishop|Cole|Danson|Evers|Frommer|Heath|Myers|Richards|Stevens".Split('|'); static string[] _emailServers = "gmail|yahoo|outlook|aol".Split('|'); static string countries = "China-Beijing,Shanghai|India-Delhi,Kolkata|United States-Washington,New York|Russia-Moscow,Saint Petersburg|Japan-Tokio,Yokohama"; static KeyValuePair<string, string[]>[] _countries = countries.Split('|').Select(str => new KeyValuePair<string, string[]>(str.Split('-').First(), str.Split('-').Skip(1).First().Split(','))).ToArray(); public Customer() { } public Customer(int id) { ID = id; Name = GetName(); Email = string.Format("{0}@{1}.com", (Name.Substring(0, 3)).ToLower(), GetString(_emailServers)); CountryId = _rnd.Next() % _countries.Length; var cities = _countries[CountryId].Value; City = GetString(cities); OrderDate = DateTime.Today.AddDays(-_rnd.Next(1, 365)).AddHours(_rnd.Next(0, 24)).AddMinutes(_rnd.Next(0, 60)); OrderTotal = Math.Round(_rnd.NextDouble() * 10000.00, 2); } public int ID { get { return _id; } set { if (value != _id) { _id = value; } } } public string Name { get { return _name; } set { if (value != _name) { _name = value; } } } public string Email { get { return _email; } set { if (value != _email) { _email = value; } } } public string City { get { return _city; } set { if (value != _city) { _city = value; } } } public int CountryId { get { return _countryId; } set { if (value != _countryId && value > -1 && value < _countries.Length) { _countryId = value; } } } public DateTime OrderDate { get { return _OrderDate; } set { if (value != _OrderDate) { _OrderDate = value; } } } public double OrderTotal { get { return _orderTotal; } set { if (value != _orderTotal) { _orderTotal = value; } } } static string GetString(string[] arr) { return arr[_rnd.Next(arr.Length)]; } static string GetName() { return string.Format("{0} {1}", GetString(_firstNames), GetString(_lastNames)); } public string Country { get { return _countries[_countryId].Key; } } // ** static list provider public static ObservableCollection<Customer> GetCustomerList(int count) { var list = new ObservableCollection<Customer>(); for (int i = 0; i < count; i++) { list.Add(new Customer(i)); } return list; } }

Step 2: Bind DataGridView to the data source

  1. Add the following dlls to your application to work with DataCollection:

    • C1.DataCollection.dll

    • C1.Win.DataCollection.dll

    You can also use the available DataCollection NuGet packages from the following locations:

    For information on how to add NuGet packages to your application, see Adding NuGet Packages to your App.

  2. Drag and drop the DataGridView control from the Toolbox onto your form.

  3. Switch to the Code view and add the following code to bind DataGridView to the data source.

Dim cv As C1DataCollection(Of Customer) = New C1DataCollection(Of Customer)(Customer.GetCustomerList(100)) grid.ItemsSource = New C1DataCollectionBindingList(cv)
cv = new C1DataCollection<Customer>(Customer.GetCustomerList(100)); grid.DataSource = new C1DataCollectionBindingList(cv);

Run the application and observe that the grid displays a Customers table.