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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top