Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. public DataGridCell GetCell(int row, int column)
  2. {
  3. DataGridRow rowContainer = GetRow(row);
  4.  
  5. if (rowContainer != null)
  6. {
  7. DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(rowContainer);
  8.  
  9. DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column);
  10. if (cell == null)
  11. {
  12. datagrid_arinc_const.ScrollIntoView(rowContainer, datagrid_arinc_const.Columns[column]);
  13. cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column);
  14. }
  15. return cell;
  16. }
  17. return null;
  18. }
  19.  
  20. public DataGridRow GetRow(int index)
  21. {
  22. DataGridRow row = (DataGridRow)datagrid_arinc_const.ItemContainerGenerator.ContainerFromIndex(index);
  23. if (row == null)
  24. {
  25. datagrid_arinc_const.UpdateLayout();
  26. datagrid_arinc_const.ScrollIntoView(datagrid_arinc_const.Items[index]);
  27. row = (DataGridRow)datagrid_arinc_const.ItemContainerGenerator.ContainerFromIndex(index);
  28. }
  29. return row;
  30. }
  31.  
  32. public static T GetVisualChild<T>(Visual parent) where T : Visual
  33. {
  34. T child = default(T);
  35. int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
  36. for (int i = 0; i < numVisuals; i++)
  37. {
  38. Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
  39. child = v as T;
  40. if (child == null)
  41. {
  42. child = GetVisualChild<T>(v);
  43. }
  44. if (child != null)
  45. {
  46. break;
  47. }
  48. }
  49. return child;
  50. }
  51.  
  52. <DataGrid VirtualizingStackPanel.IsVirtualizing="False"/>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement