2014-06-07 8 views
1

У меня есть datagrid, с рядом строк. Я хочу получить значение ячейки [0]. В виде окна я использую этот код:Как я могу получить значение ячейки в datagrid в wpf?

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 [я] .Cells [0 ] .Value.ToStri нг(); –

+0

@Mahmoud - Я удалил опечатки с вашего вопроса. Обязательно отправляйте правильный код, иначе вы получите ответы, исправляющие эти опечатки, вместо реальных ответов, которые вы ожидаете от сообщества. –

ответ

0

Как я уже говорил в комментариях, вы должны прочитать больше о WPF и привязках, как это работает, потому что значение, которое вы пытаетесь получить от UI легко может быть извлечено из основных объект данных.

Предположим, вы переплетены DataGrid в какой-то список 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, вы можете получить значение в традиционном WinForms способом в WPF, как это:

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 не имеет свойства Rows. Скорее всего, это была опечатка. –

+0

@Raging Код Bull не работает с datagrid в WPF –

+0

Сообщение об ошибке! –

Смежные вопросы