Este es uno de esos errores “tontos” que provocan que pierdas un montón de tiempo mientras estás aprendiendo a trabajar con WPF.
Tengo la siguiente declaración que, cuando llega a cargar el datacontext del control ListView, me da un error de referencia de objeto nula.
public DetalleCliente(Clientes cliente)
{
DetalleClienteViewModel viewModel = new DetalleClienteViewModel(cliente);
this.DataContext = viewModel.Cliente;
ListView.ItemsSource = viewModel.Suscripciones;
InitializeComponent();
}
¿Has encontrado ya el problema?
Es facil cuando te alejas y empiezas a depurar en la mente:
1. Instancio la clase viewmodel.
2. A this, le digo que su datacontext es la propiedad Cliente de viewmodel.
3. A ListView le digo que el source de los item es la propiedad Suscripciones del viewmodel… de aquí no pasa!!
Espera, ListView es un control, y los controles se inicializan con la orden InitializeComponent(). Por lo cual estoy intentando asignar el datasource a un control que aún no ha sido instanciado, por lo cual me devuelve un error de objeto nulo.
Cambiando para que inicialice la página y sus controles se arregla todo.
public DetalleCliente(Clientes cliente)
{
InitializeComponent();
DetalleClienteViewModel viewModel = new DetalleClienteViewModel(cliente);
this.DataContext = viewModel.Cliente;
ListView.ItemsSource = viewModel.Suscripciones;
}
Espero que sirva de ayuda.
No hay comentarios:
Publicar un comentario