WPF: pasar un control TabItem a la clase de controlador
-
22-07-2019 - |
Pregunta
Estoy usando WPF y el TabControl
como mi Menú
. Esto genera mucho código detrás del código porque un archivo controla todas las acciones del usuario. Entonces estaba pensando que podría usar una clase Controller
para cada TabItem
. Lo usé y funciona, pero no me gusta el resultado. Tengo que usar el método FindName ()
en el TabItem
que paso al Controller
y genera un código feo que puede ser difícil de depurar (al menos en mi opinión).
Entonces, ¿hay alguna forma de pasar el TabItem
para que pueda encontrar los controles en la página xaml en mi Controller
?
Por ejemplo, tengo TabItem1
, TabItem2
y TabItem3
. Cada uno contiene una página para que la use el usuario. Entonces quiero pasar TabItem1
al controlador TabItem1Controller
. Por el momento lo estoy haciendo de esta manera:
public TurbineController(TabItem tab)
{
_client = tab;
}
Pero luego tengo que usar el método FindName ()
.
¿Es posible mi solicitud?
Solución
Lo tienes al revés, al menos para el enfoque MVVM. El controlador (TurbineContoller) no debe hacer referencia a la vista (TabItem), la vista debe hacer referencia al controlador. Cree una colección de controladores y vincule la colección a un control de tabulación. El contexto de datos de cada pestaña será el controlador al que se unirá la pestaña.