简体   繁体   中英

Datagrid Wpf C#

I want to display Data in datagrid in wpf.What is the way to show data dynamically.

Random rm = new Random();
Random rm2 = new Random();
string code = "034" + rm2.Next(0, 7);
string num = code + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9);

for (int i = 1; i <= 10000; i++)
{
    code = "034" + rm2.Next(0, 7);
    num = code + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) ;
    dataGrid1.ItemsSource = num.ToString();

}
Random rm = new Random();
    Random rm2 = new Random();
    string code = "034" + rm2.Next(0, 7);
    List<string> numList = new List<string>();
    string num = code + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9);



    for (int i = 1; i <= 10000; i++)
    {

        code = "034" + rm2.Next(0, 7);
        num = code + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) ;

       numList.Add(num);
    }
    dataGrid1.ItemsSource = numList;

Update your code with this. It should work.

Hope this helps!!

First you can assign all the num values to a List or an Observable Collection. Then you can set this List or Collection as itemsource for your datagrid.

List<string> numLst = new List<string>();
for (int i = 1; i <= 10000; i++)
{
    code = "034" + rm2.Next(0, 7);
    num = code + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) + rm.Next(0, 9) ;
    numLst.Add(num);
}
dataGrid1.ItemsSource = numLst;

You can set any type which implements IEnumerable as ItemsSource for DataGrid .

For example, ObservableCollection<T> :

XAML:

<DataGrid Name="dataGrid"></DataGrid>

code-behind:

public MainWindow()
{
   FillDataGrid();

}

private void FillDataGrid()
{
   ObservableCollection<Person> coll = new ObservableCollection<Person>();
   for (int start = 0; start < 10; start++)
   {
       coll.Add(new Person() { IdPerson = start, Name = "Bill" + start.ToString(), SurName = "ONeill" });
   }
   dataGrid.ItemsSource = coll;
}

Model class:

public class Person
{
    public int IdPerson { get; set; }
    public string Name { get; set; }
    public string SurName { get; set; }
}

OR using DataTable:

public MainWindow()
{
   FillDataGrid();
}

private DataTable employeeDataTable;
private void FillDataGrid()
{
    employeeDataTable = new DataTable();
    employeeDataTable = _ds.Tables.Add("DT");
    for (int i = 0; i < 80; i++)
    {
       employeeDataTable.Columns.Add(i.ToString());
    }
    for (int i = 0; i < 100; i++)
    {
       var theRow = employeeDataTable.NewRow();
       for (int j = 0; j < 80; j++)
       {
          theRow[j] = "a";
       }
       employeeDataTable.Rows.Add(theRow);
    }
    gridEmployees.ItemsSource = employeeDataTable.DefaultView;
} 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM