Principales respuestas
Cerrar TabItem desde UserControl??

Pregunta
-
Hola amigos,
Soy nuevo desarrollando en WPF y tengo una duda que no consigo resolver.
Cree una ventana que contiene un TabControl este lo relleno haciendo binding a una colección.
Cada TabItem tiene un botón de cerrado en el Header de la pestaña y un UserControl en el Content de la pestaña.
Para cerrar la TabItem desde el header, no me da ningún problema:
var tabActiva = ((sender as Button).CommandParameter) as PestanaModel; Anade.Pestana.Remove(tabActiva);
El problema lo tengo cuando quiero cerrarlo dese el UserControl. Necesito acceder al DataContext de la ventana que contiene el UserControl, para enviarle la TabActiva y poder cerrarla.
Y esto es lo que no consigo resolver. ¿Cómo puedo acceder al DataContext que me contiene?
Si hay una manera mejor de resolver esto os agradecería también la explicación.
Gracias de antemano.
Respuestas
-
Si quieres hacerlo con elegancia, hazlo al revés, es decir, no intentes desde el UserControl acceder al tab para cerrarlo, sino al contrario: desde el contenedor del tab, detecta cuándo el UserControl quiere hacer el cierre, y cierra el Tab desde fuera.
Para ello, en el UserControl, declara un evento público que sea "Cerrar", y dispara el evento cuando se den las circunstancias bajo las cuales pretendías cerrar el Tab. Y desde fuera, en el proceso que construye el tab y le inserta dentro el UserControl, conecta un manejador a ese evento y dentro del manejador haz lo mismo que ya estás haciendo y que dices que no da ningún problema.
- Marcado como respuesta pinta.xixon viernes, 27 de mayo de 2016 8:35
Todas las respuestas
-
Si quieres hacerlo con elegancia, hazlo al revés, es decir, no intentes desde el UserControl acceder al tab para cerrarlo, sino al contrario: desde el contenedor del tab, detecta cuándo el UserControl quiere hacer el cierre, y cierra el Tab desde fuera.
Para ello, en el UserControl, declara un evento público que sea "Cerrar", y dispara el evento cuando se den las circunstancias bajo las cuales pretendías cerrar el Tab. Y desde fuera, en el proceso que construye el tab y le inserta dentro el UserControl, conecta un manejador a ese evento y dentro del manejador haz lo mismo que ya estás haciendo y que dices que no da ningún problema.
- Marcado como respuesta pinta.xixon viernes, 27 de mayo de 2016 8:35
-