none
WPF DataGrid - Hacer foco en una celda RRS feed

  • Pregunta

  • Buenas gente, estoy renegando con un DataGrid en WPF.

    Estoy necesitando dos cosas:

    No bien me cargue la grilla me haga foco en la primer celda (la fila se agrega sola pq tengo la propiedad CanUserAddRows en true). 

    Al ingresar un valor en la segunda columna necesito que me agregue una fila y haga foco en la primer celda de esta nueva fila.

    Si alguien me puede dar una mano se lo agradeceré.

    Saludos


    • Editado GonRan lunes, 3 de octubre de 2016 15:02
    lunes, 3 de octubre de 2016 14:47

Todas las respuestas

  • Hola GonRan, puedes probar con este código:

    var selectedRow = grid.ItemContainerGenerator.ContainerFromItem(grid.SelectedItem) as DataGridRow;
     
    if (selectedRow != null)
    {
        if (grid.SelectedCells.Count != 0)
        {
            DataGridCellInfo currentCell = grid.SelectedCells[0];
     
            int columnDisplayIndex = currentCell.Column.DisplayIndex++;
     
            if (columnDisplayIndex < grid.Columns.Count)
            {
                DataGridColumn nextColumn = grid.ColumnFromDisplayIndex(columnDisplayIndex);
     
                e.Handled = true;
     
                grid.CurrentCell = new DataGridCellInfo(grid.SelectedItem, nextColumn);
     
                grid.BeginEdit();
            }
        }
    }

    Con eso podrás colocar el foco en la primera celda de la fila actual. Esta línea de código puedes introducir en el evento GotFocus de la grilla.

    Espero resulte útil.

    Saludos


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    My Blog
    My code samples

    martes, 18 de octubre de 2016 12:29