locked
Instanciation d'une page en Silverlight 4 RRS feed

  • Question

  • Salut,

    Je developpe une application en Silverlight 4, et dans cette ap, l ya un tableau de Bord qui est acessible seulement par administrateur.je veux que une fois que l'admin in sert son Username et Mot de passe, directement il est dirrigé sur le tableau de bord.

    soit AdminOK une variable Bool, qui indique que les informations( UserName, PassWord) entrées par l'admin sont correct.

    soit AdminPage.xaml, le tableau de bord

    voici comment je pensais la chose :

    //C#

    AdminOK =false;

    ................

    if(AdminOK )

    {

    AdminPage ouvrir = new AdminPage();

    ouvrir.Show();

    }

    // fin

    mais malheureusement cela n'est pas possible en Silverlight, Comment resoudre ce probleme en Silverlight 4?

    Merci de me repondre.

    • Déplacé Ciprian Duduiala mercredi 21 mars 2012 12:34 question de Silverlight (Origine :Visual C#)
    mardi 20 mars 2012 20:44

Réponses

Toutes les réponses

  • Bonjour,

    Vous devez passer par le mécanisme de navigation en Silverlight :

    http://msdn.microsoft.com/fr-fr/library/cc838245(v=vs.95).aspx 

    http://nico-pyright.developpez.com/tutoriel/vs2010/csharp/windows-phone-seven/navigation-silverlight-wp7/

    Notamment vous pouvez utilser la classe NavigationService :

    this.NavigationService.Navigate(new Uri("/AdminPage", UriKind.Relative));


    Cordialement.


    mercredi 21 mars 2012 08:53
  • Salut Ould Mourad,

    J'ai essayé ta reponse mais ce la ne me donne rien comme result.

    Voici comment le l'ai emlpoyé :

    // j'essai de voir si les données entrées par lE user sont dans la base de donnée.

    FarmerDomainContext context = new FarmerDomainContext();

    LoadOperation<employe> loadUsers = context.Load(context.GetEmployesQuery());         

       loadUsers.Completed += (s, a) =>            {          var userQuery = from d in context.employes         

                    where d.nom_employ == TxbMailConnexion.Text && d.mot_pass == TbxPasswordConnexion.Text                         

           select d;              

      employe del = userQuery.FirstOrDefault();        

    // si la requete retounre une valeur non nulle

            if (del != null)     

               {

    // Le contentFrame est sur une autre page qui est "MainPage" et les choses se passent sur une autre page "Connexion"

    //pour cela j'instancie la page "MainPage"

    MainPage azer = new MainPage();  

    // et je considere que la le ContentFrame est un element de la page MainPage.xaml          

           azer.ContentFrame.Navigate(new Uri("/AdminDashBord.xaml", UriKind.Relative));  

    //je ferme la page de connexion    

                 this.DialogResult = false;                              

                       }        

            else              

      {                    InfoWindow infoWindow = new InfoWindow();             

           infoWindow.txblkInfo.Text = "Vous n'estes pas l'admin !";        

                infoWindow.Title = " identification de l'admin";               

         infoWindow.Show();              

      }      

          };


    voici la page connexion a ârtir de laquelle je veux instancier l'autre :

    et celle "MainPage" qui contien le Frame :

    et je veux que le page instanciée "AdminDashbord" s'affiche ici dans ce frame.

    merci de mae repondre.


    vendredi 23 mars 2012 15:32
  • Bonjour,

    Je vous conseille de voir le toolkit pour silverlight 4.

    Car avec la childwindow , cela simule une fenêtre.

    voici le lien :

    http://silverlight.codeplex.com/releases/view/43528

    http://msdn.microsoft.com/fr-fr/library/system.windows.controls.childwindow(v=vs.95).aspx


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    dimanche 25 mars 2012 19:21
    Modérateur
  • Bonjour Hamed,

    Le problème dans votre code est que vous devez utiliser la propériété ContentFrame  de votre objet MainPage qui est déjà affiché et pas celle d'un objet que vous venez de créer à la volé et qui n'est jamais affiché (MainPage azer = new MainPage();).

    Il faut récupérer la référence vers la page affiché au lieu d'en créer une nouvelle (Vous pouvez la stocker dans un membre statique et le milleur moment de le faire serait dans le handler de l'evnet NavigteTo de MainPage.

    Indépendement de Silverlight ou d'une autre techno. il faut bien faire la distinction entre une classe et un objet.

    Cordialement


    lundi 26 mars 2012 12:43
  • Salut Pascal Saille, Je deja les toolKit de Silverlight, Le RIA services m'a imposer cela  de puis un bon moment et je le trouve tres bon, (;-Donc je ne pense pas ce soit la source de mo proleme.
    Merci

    mardi 27 mars 2012 14:13