DataGridRow GetRow(int index) { var row = (DataGridRow)UsersList.ItemContainerGenerator.ContainerFromIndex(index); if (row != null) { return(row); } UsersList.UpdateLayout(); UsersList.ScrollIntoView(UsersList.Items[index]); row = (DataGridRow)UsersList.ItemContainerGenerator.ContainerFromIndex(index); return(row); }
private void OnMessagesSelectionChanged(object sender, SelectionChangedEventArgs e) { if (Model.SelectedMessage == null) { return; } if (Model.SelectedMessage.Userid == 0) { return; } Model.User user; if (Model.UsersById.TryGetValue(Model.SelectedMessage.Userid, out user)) { Model.SelectedUser = user; UsersList.ScrollIntoView(user); } }
DataGridCell GetCell(int row, int column) { DataGridRow rowContainer = GetRow(row); if (rowContainer != null) { DataGridCellsPresenter presenter = GetVisualChild <DataGridCellsPresenter>(rowContainer); DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column); if (cell == null) { UsersList.ScrollIntoView(rowContainer, UsersList.Columns[column]); cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column); } return(cell); } return(null); }