UserControl, Views et Entity

Funkyman06 Messages postés 3 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 8 mai 2011 - 2 mai 2011 à 11:33
Funkyman06 Messages postés 3 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 8 mai 2011 - 8 mai 2011 à 18:49
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
2 mai 2011 à 21:55
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
0
Funkyman06 Messages postés 3 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 8 mai 2011
4 mai 2011 à 17:32
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...
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 mai 2011 à 21:03
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.
0
Funkyman06 Messages postés 3 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 8 mai 2011
8 mai 2011 à 18:49
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);
            }
}
0