Get row in datagrid

2020-02-01 05:16发布

I tried to get row like this :

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

But I only got null. Is there another solution? What am I doing wrong?

I want to get data from my cells. My cells are checkboxes.

2条回答
地球回转人心会变
2楼-- · 2020-02-01 05:30
  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 is my Grid Name.This code will loop through all records present in Data-grid and Cell/Column Provided.#

查看更多
做个烂人
3楼-- · 2020-02-01 05:47

This depends on how / when you are attempting to get this data. WPF is more geared towards accessing the data by the objects bound in the ItemsSource. So, if your ItemsSource is a List of MyObject, then the specific row will be of type MyObject instead of a pure DataRow.

If you are accessing the data by means of clicking on it, you can do something like this:

var currentItem = myDataGrid.SelectedItem as MyObject;

Now, you have the current MyObject in it's originally intended form rather than picking at the grid.

查看更多
登录 后发表回答