2014-06-07 88 views
1

我有一個數據網格,有許多行。我想獲取cell [0]的值。 在窗口的形式,我使用此代碼:如何我可以在wpf中獲取datagrid中的單元格的值?

for (int i = 0; i < dataGridView1.Rows.Count; i++) 
     { 
      if (dataGridView1.Rows[i].Cells[0].Value == null) 
      { 
       //do somthing 
      } 
     } 

的問題是,我不知道如何獲取單元格的值,因爲這個代碼不WPF工作。

+0

您的代碼在編譯時就發生錯誤時,試着問問題:) –

+0

刪除最後一個「)」,並嘗試在此之前糾正代碼: comboBox3.Text = dataGridView1.Rows [I] .Cells [0 ] .Value.ToStri NG(); –

+0

@Mahmoud - 我已經從你的問題中刪除了錯別字。確保發佈正確的代碼,否則你會得到答案糾正你的拼寫錯誤,而不是你期望從社區得到的實際答案。 –

回答

0

就像我在評論中提到的,你需要閱讀更多有關WPF和綁定是如何工作的,因爲值正嘗試從UI獲得可以很容易地從底層獲取數據對象

說你已經綁定的數據網格的一些列表ObservableCollection<MyObject>和DataGrid的第一列綁定到財產Name。你可以得到第一個單元格的值僅僅是這樣的:

for (int i = 0; i < dataGridView1.Items.Count; i++) 
{ 
    string value = ((MyObject)dataGridView1.Items[0]).Name; 
    if (String.IsNullOrEmpty(textBlock.Text)) 
    { 
     // do something. 
    } 
} 

話雖這麼說,假設第一個單元是簡單DataGridTextColumn,你可以在WPF傳統的WinForms方式的價值是這樣的:

for (int i = 0; i < dataGridView1.Items.Count; i++) 
{ 
    TextBlock textBlock = dataGridView1.Columns[0] 
         .GetCellContent(dataGridView1.Items[i]) as TextBlock; 
    if (textBlock != null) 
    { 
     if (String.IsNullOrEmpty(textBlock.Text)) 
     { 
      // do something. 
     } 
    } 
} 
+0

@Mahmoud - 這是否適合您? –

+0

我的目標是什麼? ((爲MyObject)dataGridView1.Items [0])名稱。 –

+0

'MyObject'將會是你班級的名字。如果我從你以前的問題中沒有記錯,我懷疑你的情況下有'MyGrid'。 –

0

==是一個比較運算符。 =用於分配:

comboBox3.Text = dataGridView1.Rows[i].Cells[0].Value.ToString(); 
+0

這不會編譯。 DataGrid沒有任何行屬性。很可能它只是一個錯字。 –

+0

@Raging Bull代碼不支持WPF中的datagrid –

+0

發佈錯誤信息! –

相關問題