UserControl, Views et Entity

Signaler
Messages postés
3
Date d'inscription
lundi 2 mai 2011
Statut
Membre
Dernière intervention
8 mai 2011
-
Messages postés
3
Date d'inscription
lundi 2 mai 2011
Statut
Membre
Dernière intervention
8 mai 2011
-
Bonjour à tous,

J'essaye de développer une application en WPF + le pattern MVVM, mais j'ai quelques soucis techniques.
Mes requêtes sont les suivantes:

- J'ai deux UserControl l'un avec un bouton. Par l'action de ce bouton, je voudrai changer la propriété d'un control qui se trouve dans l'autre UserControl.

- D'autre part j'ai utilisé un TabControl pour changer mes Views, cependant il me semble que se n'est pas la meilleur façon de faire.

- Enfin j'ai un problème avec le framework Entity. Lors de l'ajout je n'ai aucune erreur, il semble l'ajouter dans le cache de la BDD d'entity mais pas dans la BDD SQL Server. Je pensais le faire sans le framework mais ça ne serait que contourner le problème...

N'hesitez pas à me poser des questions si ce n'est pas clair.

Voila Merci d'avance pour vos futurs réponses.

4 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
salut,

q1 - expose la propriete en propriete de methode
ou passe par des evenements --> moins de couplage

le second uc publie un evenement et le premier lui envoie un message à la reception , le second se met a jour.

q2 - regardes
http://www.michaelalbaladejo.com/post/2010/10/26/WPF-TabControl-MVVM-et-gestion-des-instances-des-vues.aspx

q3 - fais tu bien
bdd.SaveChanges();
avec bdd = le Modele pour commit les changements en base
Messages postés
3
Date d'inscription
lundi 2 mai 2011
Statut
Membre
Dernière intervention
8 mai 2011

Salut,

Merci pour ta réponse:

Q1: Est ce que tu aurai un exemple sur lequel je pourrai m'inspirer?
Q2: Merci, je vais tester.
Q3: Oui absolument le SaveChanges() a été fait. J'ai dit qu'il le met dans le cache car si je redémarrage la solution (apres avoir ajouter une entrée) les nouvelles entrées seront affichées dans ma Listview mais pas dans la base de données donc c'est bizarre...
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Q1 - http://wcode.net/2009/08/exposing-inner-control-in-wpf-usercontrol/

Q3 - C'est une base sql server ce ? un fichier sdf?
Donnes plus d'explication et un code mini qui produit ce probleme.
Messages postés
3
Date d'inscription
lundi 2 mai 2011
Statut
Membre
Dernière intervention
8 mai 2011

Q3 - La base de donnée est en .mdf.
J'ai effectuer ce tuto:
http://troll-me.fr/tutoriel-silverlight-part-6-2-m-v-vm-petite-mise-en-pratique/

Et lors de l'ajout je fais ça:

public void AddContact(object param)
        {

            DatabaseEntities ent = new DatabaseEntities();
            Contacts c = new Contacts();

            try
            {
                c.FirstName = FirstName;
                c.Surname = Surname.ToUpper();
                c.Company = Company;
                c.Position = "A";
                c.Email = "A";
                c.Website = "A";
                c.IM_Address = "A";
                c.Phone1 = "A";
                c.ID_Phone1_Type = 1;
                c.Phone2 = "A";
                c.ID_Phone2_Type = 1;
                c.Phone3 = "A";
                c.ID_Phone3_Type = 1;
                c.Phone4 = "A";
                c.ID_Phone4_Type = 1;
                c.Address = "A";
                c.ID_Address_Type = 1;
                c.City = "A";
                c.SocialSecurityNumber = "A";
                c.Birthday = DateTime.Now;
                c.ID_ContactType = 1;
                c.ID_ContactNationality = 1;
                c.IsMyCompany = false;
                c.Comments = "A";
                c.ZIPCode = "A";

                ent.AddToContacts(c);
                ent.SaveChanges();
                ent.AcceptAllChanges();

                MessageBox.Show("Contact " + c.Surname + " " + c.FirstName + " Ajoutée");
            }
            catch (UpdateException exp)
            {
                MessageBox.Show("Erreur détectée : {0}", exp.Message);
            }
}