none
Crear un ListCollectionView a partir de un CollectionViewSource RRS feed

  • Pregunta

  • Buenas tardes. Mi pregunta es como puedo crear un ListCollectionView a partir de un CollectionViewSource.

    El codigo que utilizo es el siguiente pero me lanza una excepcion el Console.WriteLine porque me dice que tengo una referencia a NULL.

     

            private ListCollectionView miVista;

            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                FacturasDataBaseEntities facturasDataBaseEntities = new FacturasDataBaseEntities();

                CollectionViewSource vistaClientes = this.FindResource("vistaClientes") as CollectionViewSource;
                vistaClientes.Source = facturasDataBaseEntities.Clientes;


                miVista = CollectionViewSource.GetDefaultView(vistaClientes) as ListCollectionView;       /////<<<<<<<<<<<<<<<<<<<<<
                ////miVista = vistaClientes.View as ListCollectionView;
                Console.WriteLine("Elementos de miVista = {0}",miVista.Count);
            }

    Si elimino la linea marcada con ////<<<<<<<<<<<<< y la sustituyo por la linea inferior tambien me da error.

    Necesito ayuda porque no se que estoy haciendo mal.

    Gracias

    lunes, 24 de octubre de 2011 14:28

Todas las respuestas

  • pero el metodo GetDefaultView() que tipo de dato devuelve ?

    porque recuerda que al usar el "as" si este no puede convertir devolvera null, que es justamente lo que te esta sucediendo

     

    el tipo devuelto por GetDefaultView() no es un ListCollectionView, al menos eso se intepreta por el planteo, la pregunta seria, que tipo es ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 24 de octubre de 2011 14:33
  • Gracias por responder Leandro.

    Soy nuevo en WPF y C sharp. Creo que lo que me estas pidiendo es como declaro vistaClientes. Lo declaro en xaml de la siguiente manera:

        <Window.Resources>
            <CollectionViewSource x:Key="vistaClientes" d:DesignSource="{d:DesignInstance my:Cliente, CreateList=True}" />
            <CollectionViewSource x:Key="vistaFacturas" Source="{Binding Path=Facturas, Source={StaticResource vistaClientes}}" />
            <CollectionViewSource x:Key="vistaDetallesFacturas" Source="{Binding Path=DetallesFacturas, Source={StaticResource vistaFacturas}}" />
        </Window.Resources>

    y my:Cliente es una Clase generada por el Entity Framework a partir de una tabla de Clientes con 3 campos: IDCliente, Nombre y Apellido.

     

    Es lo que me estas pidiendo???????

    Gracias.

    lunes, 24 de octubre de 2011 14:43