none
Favor!!!! Ayuda con Navegacion entre Pages en silverlight! RRS feed

  • Pregunta

  • Hola, posteo nuevamente mi pregunta ya que aun estoy trabado en mi problema.

    Tengo una pagina de login que valida los usuarios, y que luego de validarlos la aplicacion debe abrir  otra page donde se carga el entorno de trabajo del usuario que accedió a la aplicacion.

    Mi problema es como llamo a la segunda pagina una vez que el usuario se validó.

    He intentado de muchas maneas pero ninguna a funcionado, incluso reinvocando en tiempo de ejecucion el RootVisual pero nada.

    En el fondo lo que necesito es, y si pensamos en el entorno por default que crea silverlight al crear un nuevo proyecto, es a este mismo entorno por default agregar una validacion de usuario antes, y luego cargar la pagina este entorno...

    Les adjunto los codigos de ambas paginas. Ya estoy a punto de ponerme a cantar "deseperado" de Marta Sanchez..jaja, favor sus ayudas!!!

    Tambien me sirve alguna otra idea de cómo hacerlo, puede que este cometiendo algun error de jerarquias o forma de enlazar los controles..

    Gracias!!

    Login

    "<UserControl x:Class="Ajj.Seven.Aplicacion.login"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"          
        xmlns:y="http://schemas.microsoft.com/netfx/2007/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"           
        xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
        Width="800" Height="600" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
        <navigation:Frame x:Name="MainContent">
            <Grid x:Name="LayoutRoot" Background="White">
                <Grid Height="Auto" HorizontalAlignment="Stretch" x:Name="ResultForm" VerticalAlignment="Stretch" Width="Auto" Visibility="Collapsed">
                    <TextBlock HorizontalAlignment="Left" VerticalAlignment="Top" Text="Login succeeded. You can continue with the application" TextWrapping="Wrap"/>
                </Grid>
                <Grid Margin="8,186.768997192383,8,228" VerticalAlignment="Stretch" x:Name="TestForm">
                    <TextBlock HorizontalAlignment="Stretch" Margin="0,32.2309989929199,8,8" VerticalAlignment="Stretch" Text="" TextWrapping="Wrap" FontSize="12" x:Name="TextBlockResult"/>
                </Grid>
                <Grid Height="100" Margin="20,20,0,0" x:Name="LoginForm" VerticalAlignment="Top" Width="250">
                    <TextBlock HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Text="Usuario:" TextWrapping="Wrap"/>
                    <TextBox HorizontalAlignment="Stretch" Margin="90,0,0,0" x:Name="txt_Username" VerticalAlignment="Top" Text="" TextWrapping="Wrap"/>
                    <TextBlock HorizontalAlignment="Left" VerticalAlignment="Stretch" Text="Clave:" TextWrapping="Wrap" Margin="0,30,0,38.4630012512207" d:LayoutOverrides="Height"/>
                    <TextBox HorizontalAlignment="Stretch" Margin="90,30,0,40.2280006408691" x:Name="txt_Password" VerticalAlignment="Top" Text="" TextWrapping="Wrap" d:LayoutOverrides="Height"/>
                    <Button Height="23" HorizontalAlignment="Right" Margin="0,0,0,0" x:Name="btn_Entrar" VerticalAlignment="Bottom" Width="78" Content="Entrar" Click="btnEntrar_Click" />
                </Grid>

            </Grid>
        </navigation:Frame>
    </UserControl>
    "

    MainPage

    " <navigation:Page
                   xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
                   xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
                   x:Class="Ajj.Seven.Aplicacion.Views.MainPage"
                   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                   xmlns:l="clr-namespace:SilverlightMenu.Library;assembly=SilverlightMenu.Library"             
                   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                   xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
                   mc:Ignorable="d"
                   xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
                   xmlns:uriMapper="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Controls.Navigation"             
                   xmlns:gs="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Extended"             
                   xmlns:system="clr-namespace:System;assembly=mscorlib"
                   d:DesignWidth="640" d:DesignHeight="480"
                   Title="MenuTest Page">      
            <Grid x:Name="LayoutRoot" Style="{StaticResource LayoutRootGridStyle}">      
                <Grid.Background>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                        <GradientStop Offset="0.0" Color="#FF000000"/>
                        <GradientStop Offset="1.0" Color="#FF80FF80"/>
                    </LinearGradientBrush>
                </Grid.Background>
                <toolkit:DockPanel>
                    <Grid x:Name="NavigationGrid" toolkit:DockPanel.Dock="Top" Style="{StaticResource NavigationGridStyle}">
                  
                        <Border x:Name="BrandingBorder" Style="{StaticResource BrandingBorderStyle}">
                            <StackPanel x:Name="BrandingStackPanel" Style="{StaticResource BrandingStackPanelStyle}">

                                <ContentControl Style="{StaticResource LogoIcon}"/>
                                <TextBlock x:Name="ApplicationNameTextBlock" Style="{StaticResource ApplicationNameStyle}"
                                       Text="SEVEN - Sistema de Ventas"/>

                            </StackPanel>
                        </Border>
                        <Border x:Name="LinksBorder" Style="{StaticResource LinksBorderStyle}">
                            <StackPanel x:Name="LinksStackPanel" Style="{StaticResource LinksStackPanelStyle}">

                                <HyperlinkButton x:Name="Link1" Style="{StaticResource LinkStyle}"
                                             NavigateUri="/Home" TargetName="ContentFrame" Content="Inicio"/>

                                <Rectangle x:Name="Divider1" Style="{StaticResource DividerStyle}"/>

                                <HyperlinkButton x:Name="Link2" Style="{StaticResource LinkStyle}"
                                             NavigateUri="/About" TargetName="ContentFrame" Content="Acerca de"/>

                            </StackPanel>
                        </Border>
                    </Grid>
                  
                    <toolkit:DockPanel>
                    <Grid toolkit:DockPanel.Dock="Top" >
                        <l:Menu ImagesPath="{Binding ImagesPath}" toolkit:DockPanel.Dock="Top"
                        MenuItem="{Binding MVVMMenuItem}"
                        Command="{Binding Path=MenuCommand}"/>

                        <Grid x:Name="GridLayoutNavigation" Background="Transparent" Margin="0,22,0,0" >
                            <toolkit:DockPanel Grid.Row="0"  LastChildFill="True">
                                <toolkit:Expander  HorizontalAlignment="Left" Name="expander1" VerticalAlignment="Stretch" ExpandDirection="Left" BorderThickness="0">
                                        <Grid Height="Auto" HorizontalAlignment="Stretch" Name="grid1" VerticalAlignment="Stretch" Width="Auto">
                                            <toolkit:Accordion  x:Name="acc">
                                                <toolkit:AccordionItem Content="item 1" Header="A"/>
                                                <toolkit:AccordionItem Content="item 2" Header="B -  long header"/>
                                                <system:String>regular string item 3</system:String>
                                            </toolkit:Accordion>
                                        </Grid>
                                    </toolkit:Expander>
                                <navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                                                      Source="/Home" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed" >
                                        <navigation:Frame.UriMapper>
                                            <uriMapper:UriMapper>
                                                <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
                                                <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
                                            </uriMapper:UriMapper>
                                        </navigation:Frame.UriMapper>
                                    </navigation:Frame>
                            </toolkit:DockPanel>
                        </Grid>                 
                    </Grid>
                </toolkit:DockPanel>
            </toolkit:DockPanel>
            </Grid>        
        </navigation:Page>
    "
    Roberto Soto Ingeniero de Sistemas
    lunes, 7 de noviembre de 2011 20:27

Respuestas

  • Hola, para redireccionar de un user control a otro solo tienes a hacer lo siguiente:

     

     ... 
    this.Content = new otroUserControl(); 


    la validacion de usuario ya es cosa tuya, saludos

    • Editado gblumen miércoles, 9 de noviembre de 2011 14:39
    • Propuesto como respuesta gblumen miércoles, 9 de noviembre de 2011 15:07
    • Marcado como respuesta -RaSv- miércoles, 9 de noviembre de 2011 19:24
    miércoles, 9 de noviembre de 2011 14:38

Todas las respuestas

  • Hola Roberto.

    Mira, puedes tener el registro de usuario en un childWindow y al regresarte la validación exitosa.. cambias la pagina de inicio.. en la siguiente liga tengo un pequeño ejemplo, espero te sirva.

    http://ciscoperez.wordpress.com/2011/10/06/cambiar-mainpage-al-cerrar-childwindow/

     

    Saludos. =)

    Atentamente

    Cisco Pérez  =)

    lunes, 7 de noviembre de 2011 22:16
  • Gracias por la idea, probare como va.

    Estoy en el proceso de "parto" de migrar de .net a Silverlight, hay muchas cosas que aun no me cuadran pero es cosa de tiempo. :-)

     

    gracias de nuevo por la ayuda!

     

    Roberto


    Roberto Soto Ingeniero de Sistemas
    martes, 8 de noviembre de 2011 18:20
  • Hola, para redireccionar de un user control a otro solo tienes a hacer lo siguiente:

     

     ... 
    this.Content = new otroUserControl(); 


    la validacion de usuario ya es cosa tuya, saludos

    • Editado gblumen miércoles, 9 de noviembre de 2011 14:39
    • Propuesto como respuesta gblumen miércoles, 9 de noviembre de 2011 15:07
    • Marcado como respuesta -RaSv- miércoles, 9 de noviembre de 2011 19:24
    miércoles, 9 de noviembre de 2011 14:38
  • Era lo que andaba buscandooooooooooooooo!!!!!!!!!!! :-):-):-):-):-):-):-):-):-):-)))

    jaja

    Gracias gblumen!!, te pasaste

     

    roberto


    Roberto Soto Ingeniero de Sistemas
    miércoles, 9 de noviembre de 2011 19:25