5 Stimmen

Datagrid: Wie erhält man die CurrentCell des SelectedItem?

Innerhalb eines WPF datagrid Code hinter, wie bekomme ich die currentCell von meinem dataGrid.SelectedItem (In Code)?

Vielen Dank,

8voto

Haris Hasan Punkte 29356

Versuchen Sie dies von Beitrag

Sie können die Zeile aus dataGrid.SelectedIndex und Spalte von dataGrid.CurrentColumn.DisplayIndex

public static DataGridCell GetCell(DataGrid dataGrid, int row, int column)
        {
            DataGridRow rowContainer = GetRow(dataGrid, row);
            if (rowContainer != null)
            {
                DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(rowContainer);

                // try to get the cell but it may possibly be virtualized
                DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column);
                if (cell == null)
                {
                    // now try to bring into view and retreive the cell
                    dataGrid.ScrollIntoView(rowContainer, dataGrid.Columns[column]);

                    cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column);
                }

                return cell;
            }

            return null;
}

Editar

public static DataGridRow GetRow(DataGrid dataGrid, int index)
    {
    DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(index);
        if (row == null)
        {

            dataGrid.ScrollIntoView(dataGrid.Items[index]);
            dataGrid.UpdateLayout();

            row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(index);
        }

        return row;
    }

finden Sie den vollständigen Quellcode ici (siehe Code am Ende der Seite)

0voto

Vale Punkte 3156

Sie können die Eigenschaft CurrentCell.Item im DataGrid selbst verwenden:

DataGridCell cell = (DataGridCell)myDataGrid.CurrentCell.Item;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X