none
Saber ultimo registro del loadingrow de un datagrid RRS feed

  • Pregunta

  • Hola amigos, pues eso, como saber ultimo registro del loadingrow de un datagrid en wpf, el tema es que debo de realizar una accion cuando el datagrid se haya completado que solo tiene que ver con el ultimo registro del listado para sumarle una cantidad.

    Saludos.

    lunes, 4 de abril de 2011 7:42

Respuestas

  • Hola WpfSoft.

    Corsario tiene razon, el datagrid por defecto tiene la propiedad EnableRowVirtualization a true, de modo que no se cargan todas filas de la fuente, se van cargando segun se necesitan.

    Pero si lo que quieres es sumar a la ultima fila algo, puedes hacer lo que comenta Felipe, obten la fuente y le añades un registro al final con una suma, o al ultimo registro le sumas lo que quieras.

    Insisto en que los datagrids solo son presentaciones visuales de los datos, los datos reales estan en la fuente. ¿para que tener 2 copias de datos?.

    (yo programaba con un spectrum de 48Kb de pequeño y se lo que es mirar hasta el ultimo bit ;)


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    • Marcado como respuesta WpfSoft sábado, 9 de abril de 2011 20:36
    martes, 5 de abril de 2011 19:33

Todas las respuestas

  • Hola

    Necesitas saber cual es el último elemento del datasource asociado al datagrid, si es un DataTable necesitas saber cual es la última fila. Si es un List<T>  necesitas recuperar el último elmento. Ya que el DataRow realmente es uno de los items asociados de la fuente de datos.

    List<Persona> personas =  new List{

     new Persona {Nombre = "Julián"},

     new Persona {Nombre = "Pedro"},

     new Persona {Nombre = "Juan"}ç

    };

    DataGirid1.ItemsSource = personas;

    ////Posteriormente los puedes recuperar asì:

    var objetoListaPersonas = DataGirid1.ItemsSource as List<Persona>();

    Ahora si requieres la fila seleccionada, utiliza el evento SelectionChanged y en este

    var objetoPersona = e.Row as Persona;//Por ejemplo

    Saludos.

     


    Custom Control Silverlight
    "Blog Ingphillip's Prog: TODO WEB
    lunes, 4 de abril de 2011 13:13
  • ¡Hola!

    Estaba pensando que sabiendo la cantidad de elementos que tiene tu fuente podrías comparla con las veces que se dispara el evento loadingrow (http://msdn.microsoft.com/es-es/library/system.windows.controls.datagrid.loadingrow(v=VS.100).aspx). Consultando la documentación (solo crea objetos DataGridRow cuando son necesarios, y los reutiliza siempre que es posible), creo que no te valdría.

    ¿Por qué no realizas el cambio en la fuente antes de asignarle ésta al datagrid?

    Saludos,

     

    lunes, 4 de abril de 2011 15:50
  • Hola WpfSoft.

    Corsario tiene razon, el datagrid por defecto tiene la propiedad EnableRowVirtualization a true, de modo que no se cargan todas filas de la fuente, se van cargando segun se necesitan.

    Pero si lo que quieres es sumar a la ultima fila algo, puedes hacer lo que comenta Felipe, obten la fuente y le añades un registro al final con una suma, o al ultimo registro le sumas lo que quieras.

    Insisto en que los datagrids solo son presentaciones visuales de los datos, los datos reales estan en la fuente. ¿para que tener 2 copias de datos?.

    (yo programaba con un spectrum de 48Kb de pequeño y se lo que es mirar hasta el ultimo bit ;)


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    • Marcado como respuesta WpfSoft sábado, 9 de abril de 2011 20:36
    martes, 5 de abril de 2011 19:33