2017-11-28 10 views
1

これは奇妙だと思うし、なぜ機能していないのかわかりません。 私はこれが機能しているtempDTという名前のDataTable DataGridViewRowに行をキャストできません

を持っている:このコードはまた、DataGridViewRowに行をキャストしていますか?

foreach (DataGridViewRow row in tempDT.Rows) 
{ 
    // do iteration  
    foreach (DataGridViewCell cell in row.Cells) 
    { 
    // do iteration 
    } 
} 

あまりにもこの:私はそのようにそれを行う場合、それはのDataRowにそれをキャストするだけで可能です!

DataRow row2 = ((DataRow)tempDT.Rows[0]); 

しかし、これではない:

DataGridViewRow row1 = ((DataGridViewRow)tempDT.Rows[0]); 

なぜ私は上記のようにそれをキャストすることはできませんか?

+1

plz説明を分かりやすくするために少し –

+0

何の行ですか? – BadMiscuit

+0

キャストしようとしている行の実際のタイプは何ですか? –

答えて

-1

以下は、あなたのコードで

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      List<Customer> lst = new List<Customer>() { new Customer() { ID = 1, Name = "XYZ" }, new Customer() { ID = 1, Name = "XYZ" } }; 

      dataGridView1.DataSource = lst; 

      DataGridViewRowCollection c = dataGridView1.Rows; 
      DataGridViewRow val = dataGridView1.Rows[0]; 
      Console.WriteLine(val.Cells[0].Value); 
     } 

     private class Customer 
     { 
      public int ID { get; set; } 
      public string Name { get; set; } 
     } 
    } 

問題は、あなたがDataGridViewRowにDataTableの行、すなわちのDataRowを変換しようとしているされ、罰金私のために働いています。 (それは私があなたが与えたコードから考えているものです)。そのような場合は、DataRowをDataGridViewRowに変換できません。

+0

共振を-1、??????????? –

関連する問題