Получить строку в датагрид - PullRequest
5 голосов
/ 11 декабря 2011

Я пытался получить строку следующим образом:

DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(i);
TextBlock cellContent = dataGrid.Columns[0].GetCellContent(row) as TextBlock;

Но я получил только null. Есть ли другое решение? Что я делаю не так?

Я хочу получить данные из своих камер. Мои клетки - это флажки.

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Это зависит от того, как / когда вы пытаетесь получить эти данные.WPF больше ориентирован на доступ к данным с помощью объектов, связанных в ItemsSource.Таким образом, если ваш ItemsSource является списком MyObject, то конкретная строка будет иметь тип MyObject вместо чистого DataRow.

Если вы обращаетесь к данным посредством нажатия на них, вы можете сделать что-то вродеthis:

var currentItem = myDataGrid.SelectedItem as MyObject;

Теперь у вас есть текущий MyObject в его первоначальной форме, а не в сетке.

0 голосов
/ 02 января 2015
  for(int row =0; row < dg_CountInventory.Rows.Count; row ++) //Loop through each row
    {
        //Provide the Column Index and row as in Loop
        TextBlock b = dg_CountInventory.Columns[1].GetCellContent(dg_CountInventory.Items[row ]) as TextBlock; 
    }

dg_CountInventory - это мое имя сетки. Этот код будет перебирать все записи, представленные в сетке данных и в ячейке / столбце. #

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...