none
como totalizar una columna de un datagrid en wpf RRS feed

  • Pregunta

  • hola amigos,

    estoy utilizando un datagrid, pero ahora necesito totalizar los valores de alguna de sus columnas

    y ademas estoy utilizando linq to sql
    • Editado ciberastro viernes, 4 de mayo de 2012 14:15
    viernes, 4 de mayo de 2012 14:01

Respuestas

  • Hola :)

    Pues tienes dos caminos, uno mejor que el otro (en mi opinion)... y de hecho no se si el primero funcione bien en WPF:

    La primera de las opciones es recorrer las filas del grid, sumarlas y representarlas en este como una columna:

    https://msmvps.com/blogs/peplluis/archive/2008/06/05/totalizar-la-una-columna-de-un-datagridview.aspx

    O la otra y que me parece un poquito mejor, es crear una entidad extendida o un objeto anonimo y emplear linq para obtebner los totales. El ejemplo del tipo anonimo seria algo asi:

    var obj = (from c in clientes
               select new
                      {
                         columna1 = c.Nombre,
                         columna2 = c.Apellido,
                         columna3 = c.Saldo + c.SaldoAnterior
                       }).ToList();

    Y esto lo asignas a la Grid

    Saludos.

     

    Nicolás Herrera
    Bogotá - Colombia
    BLOG - Leader Group BogotaDotNet
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes

    • Marcado como respuesta ciberastro sábado, 12 de mayo de 2012 14:36
    miércoles, 9 de mayo de 2012 22:53

Todas las respuestas

  • pero no afecta que uses wpf para esta tarea, porque se supone que esto lo harias directo con los datos, no con el control grid

    podrias usar el Sum() de la extension de linq para esta accion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 4 de mayo de 2012 15:37
  • pero no afecta que uses wpf para esta tarea, porque se supone que esto lo harias directo con los datos, no con el control grid

    podrias usar el Sum() de la extension de linq para esta accion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    pero como lo hago
    viernes, 4 de mayo de 2012 17:16
  • Pues es difícil ayudarte sin tener la estructura de datos que manejas.

    Aquí tienes 101 ejemplos de linq, entre los que está el Sum que te comenta Leandro

    VB.NET http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

    C# http://msdn.microsoft.com/en-us/vstudio/bb688088


    Atentamente, Sergio.

    Blog
    Twitter

    viernes, 4 de mayo de 2012 17:35
  • mm no sabria decirte porque no mencionas como estan estructuradas las entidades

    ni que quieres totalizar


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 4 de mayo de 2012 18:13
  • como mencione anteriormente estoy usando linq to sql para manejar la base de datos

    y cargo el datagrid de la siguiente manera:

    public partial class VerClientes : Window
        {
            public VerClientes()
            {
                InitializeComponent();
            }
    
            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                DataDataContext data = new DataDataContext();
    
                List<Clientes> Clientes = (from s in data.Clientes
                                          select s).ToList();
                DataGridver.ItemsSource = Clientes;
            }
        }
    y una de las columnas del datagrid se llama saldo, quiero mostrar el total de esa columna


    _________________________________________________ ciberastro visitanos en www.compudiz.com

    sábado, 5 de mayo de 2012 21:37
  • Hola :)

    Pues tienes dos caminos, uno mejor que el otro (en mi opinion)... y de hecho no se si el primero funcione bien en WPF:

    La primera de las opciones es recorrer las filas del grid, sumarlas y representarlas en este como una columna:

    https://msmvps.com/blogs/peplluis/archive/2008/06/05/totalizar-la-una-columna-de-un-datagridview.aspx

    O la otra y que me parece un poquito mejor, es crear una entidad extendida o un objeto anonimo y emplear linq para obtebner los totales. El ejemplo del tipo anonimo seria algo asi:

    var obj = (from c in clientes
               select new
                      {
                         columna1 = c.Nombre,
                         columna2 = c.Apellido,
                         columna3 = c.Saldo + c.SaldoAnterior
                       }).ToList();

    Y esto lo asignas a la Grid

    Saludos.

     

    Nicolás Herrera
    Bogotá - Colombia
    BLOG - Leader Group BogotaDotNet
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes

    • Marcado como respuesta ciberastro sábado, 12 de mayo de 2012 14:36
    miércoles, 9 de mayo de 2012 22:53