IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Problème de sychronisation


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Ingenieur étude et développement
    Inscrit en
    Décembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur étude et développement

    Informations forums :
    Inscription : Décembre 2009
    Messages : 29
    Par défaut Problème de sychronisation
    Bonjour,

    J'ai crée une classe afin de pouvoir faire un datagrid bindé à ma convenance, avec exactement ce que je veux. Mais le soucis que j'ai, c'est le temps que ma classe se construise, le load de la page en cours est déjà fin. Ce qui fait que j'ai rien dans mon tableau.

    Ps :Je me suis "amusé" à redemandé le binding apres quelques secondes sur un bouton, bien entendu là ça marche car il a fini de charger.

    Je met ici le code de ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     public class Element
        {
            public String RoleName { get; set; }
            public bool InRole { get; set; }
     
            public Element(string RoleName, bool Check)
            {
                this.RoleName = RoleName;
                this.InRole = Check;
     
            }
     
        }
     
        public class DataGridRoleCheckBox
        {
     
            public RolesContext RoleC { get; set; }
            public RolesContext RoleD { get; set; }
            public List<Element> MesElements { get; set; }
            public EntitySet<RolesServiceUser> MesRoles { get; set; }
            public List<String> MesRoleUserName { get; set; }
     
            public DataGridRoleCheckBox(String Username)
            {
                MesRoleUserName = new List<string>();
                MesElements = new List<Element>();
                MesRoles = new EntitySet<RolesServiceUser>();
                RoleC = new RolesContext();
                RoleD = new RolesContext();
                RoleD.RolesServiceUsers.EntityAdded += new EventHandler<EntityCollectionChangedEventArgs<RolesServiceUser>>(RolesServiceUsers_EntityAdded);
                RoleD.Load(RoleD.GetRoleUserWithoutAdminQuery(Username)).Completed += new EventHandler(DataGridRoleCheckBox_Completed);
                RoleC.Load(RoleC.GetRoleWithoutAdminQuery()).Completed += new EventHandler(RoleCCompleted);
     
     
            }
     
            void RolesServiceUsers_EntityAdded(object sender, EntityCollectionChangedEventArgs<RolesServiceUser> e)
            {
                MesRoleUserName.Add(e.Entity.RoleName);
            }
     
            void DataGridRoleCheckBox_Completed(object sender, EventArgs e)
            {
                MesRoles = RoleD.RolesServiceUsers;
            }
     
     
            private void RoleCCompleted(object sender, EventArgs e)
            {
     
                EntitySet<RolesServiceUser> test = RoleC.RolesServiceUsers;
                foreach (RolesServiceUser item in test)
                {
                    if (MesRoleUserName.Contains(item.RoleName))
                        MesElements.Add(new Element(item.RoleName, true));
                    else
                        MesElements.Add(new Element(item.RoleName, false));
                }
     
            }
        }
    et ici, la page qui l'appelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     public VuTtCompte()
            {
     
                InitializeComponent();
                worker = new BackgroundWorker();
                worker.WorkerReportsProgress = true;
                worker.DoWork += new DoWorkEventHandler(_worker_DoWork);
                worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_worker_RunWorkerCompleted);
                worker.RunWorkerAsync();
            }
     
            void _worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
            {
     
                this.DataContext = tt;
                mesElementsDataGrid.ItemsSource = tt.MesElements;
            }
     
            void _worker_DoWork(object sender, DoWorkEventArgs e)
            {
                Dispatcher.BeginInvoke(() => tt = new DataGridRoleCheckBox("admin"));
            }

    Si quelqu'un a la gentillesse de se pencher sur le problème

  2. #2
    Membre averti
    Profil pro
    Ingenieur étude et développement
    Inscrit en
    Décembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur étude et développement

    Informations forums :
    Inscription : Décembre 2009
    Messages : 29
    Par défaut
    J'ai réussi à résoudre mon problème

    M'enfin c'est moins propre que ce que j'esperais et ce que j'avais l'habitude de faire en C#.

    Pour ce qui aurait le même problème, j'ai fait d'abord fait mes "requêtes" dans ma ChildForm que je veux afficher. J'attend que cela soit effectué via l'event Completed.

    Ensuite une fois fini, je met en "route" la routine que j'ai besoin dans un thread séparé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Apache VS Cacti _ problème de sychronisation ?
    Par Hezoq dans le forum Apache
    Réponses: 5
    Dernier message: 01/06/2008, 20h03
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo