2016-07-13 8 views
0

データをDataGridにwpfで表示したいのですが、データを動的に表示する方法があります。Datagrid Wpf C#

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(); 

} 

答えて

0

あなたはDataGridためItemsSourceとしてIEnumerableを実装する任意のタイプを設定することができます。例えば

ObservableCollection<T>

XAML:

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

コードビハインド:

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; 
} 

モデルクラス:

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

OR Dを使用してataTable:

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; 
} 
+0

@ArsalanAhmed @ArsalanAhmedは質問をしてください。私の返事があなたに役立つと感じたら、私の返事を答えとしてマークして、将来の他の人の検索を簡単にすることができます。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-workをご覧ください。 – StepUp

1
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; 

はこれで、あなたのコードを更新します。それは動作するはずです。

これが役立ちますように!

1

まず、すべてのnumの値をListまたはObservable Collectionに割り当てることができます。次に、このリストまたはコレクションをデータグリッドのitemsourceとして設定できます。

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;