[]
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:
The following image shows how the DataGridView control appears after completing the steps above.
Add a new class file, Customer, to the application.
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;
}
}
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:
C1.DataCollection: https://www.nuget.org/packages/C1.DataCollection
C1.Win.DataCollection: https://www.nuget.org/packages/C1.Win.DataCollection
For information on how to add NuGet packages to your application, see Adding NuGet Packages to your App.
Drag and drop the DataGridView control from the Toolbox onto your form.
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.