public void AbrirAuxiliarCommandHandler(object parameters) { ListadoContratosView listadoAuxiliar = new ListadoContratosView(); // Lo llamamos como auxiliar de búsqueda // Aprovechamos el patrón decorator para implementar funcionalidad extra sin romper MVVM ListadoAuxiliarDecorator listadoAuxiliarDecorator = new ListadoAuxiliarDecorator(); listadoAuxiliarDecorator.SetComponent(listadoAuxiliar); // Le asignamos el componente listadoAuxiliar.Show(); listadoAuxiliarDecorator.SeleccionContrato += (listado, args) => { if (args.Contrato == null) { this.Contrato = new NullContratoEntity(); } this.Contrato = args.Contrato; if (args.Contrato.Cliente == null) { this.Contrato.Cliente = new NullClienteEntity(); this.RutBusquedaCliente = null; } else { this.Contrato.Cliente = args.Contrato.Cliente; this.RutBusquedaCliente = args.Contrato.Cliente.Rut; } listadoAuxiliar.Close(); }; }