Exemplo n.º 1
0
        /// <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!!
            }
        }
Exemplo n.º 2
0
        /// <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!!
            }
        }