/// <summary> /// El ViewModel informa a la vista principal que OTRA vista fue elegida /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> private void ViewModelOnViewAdded(object sender, EventArgs eventArgs) { var nuevaVista = sender as Control; if (nuevaVista != null) { nuevaVista.Dock = DockStyle.Fill; if (nuevaVista is INavigableView) { ((INavigableView)nuevaVista).SetContainer(mainContent); } else { nuevaVista.Parent = mainContent; // con esto evito el BringToFront() } if (nuevaVista is ISupportRibbon) { ISupportRibbon rib = nuevaVista as ISupportRibbon; ribMain.MergeRibbon(rib.Ribbon); rib.SetMainRibbon(ribMain); rib.BindEvents(); rib.FocusOnPage(); } // cambiar titulo de barra segun la vista!! // CONECTAR A SEARCH CONTROL!! } }
/// <summary> /// El ViewModel informa a la vista principal que OTRA vista fue elegida /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> private void ViewModelOnViewAdded(object sender, EventArgs eventArgs) { var nuevaVista = sender as Control; if (nuevaVista != null) { nuevaVista.Dock = DockStyle.Fill; if (nuevaVista is INavigableView) { // Si la vista que se agrega es navegable, le informo cual es el contenedor que puede utilizar para las vistas de trabajo // ((INavigableView)nuevaVista).SetContainer(mainContent); // TODO pensar si no hay que llamar a RestoreVisualState() Que pasaria si la vista no tiene ribbon?? } else { // Si es una vista comun, seteo el Parent para que aparezca en el area de contenidos // nuevaVista.Parent = mainContent; // con esto evito el BringToFront() } if (nuevaVista is ISupportRibbon) { // Si soporta ribbon, hago el merge del ribbon de la vista con el principal // BindEvents() --> le da lugar a nuevaVista de enlazar los eventos que necesite para manejar los cambios de pagina del ribbon // FocusOnPage() --> le permite a nuevaVista mostrar una determinada pagina del ribbon // ISupportRibbon rib = nuevaVista as ISupportRibbon; ribMain.MergeRibbon(rib.Ribbon); rib.SetMainRibbon(ribMain); rib.BindEvents(); rib.FocusOnPage(); } // cambiar titulo de barra segun la vista!! // CONECTAR A SEARCH CONTROL!! } }