Impossible de voir mes binding une fois logger
Fermé
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
-
Modifié le 5 janv. 2021 à 18:30
Utilisateur anonyme - 15 janv. 2021 à 18:28
Utilisateur anonyme - 15 janv. 2021 à 18:28
A voir également:
- Impossible de voir mes binding une fois logger
- Voir mot de passe wifi android - Guide
- Voir ma maison par satellite - Guide
- Comment voir qui regarde mon profil facebook - Guide
- Voir les composants de son pc - Guide
- Voir les appareils connectés facebook - Guide
20 réponses
Utilisateur anonyme
5 janv. 2021 à 19:57
5 janv. 2021 à 19:57
Bonsoir
Maintenant que Baladur a corrigé ta coloration syntaxique (voir le lien qu’il a ajouté tout en bas de ton message) on y voit plus clair.
Merci à lui.
Le Xaml est sensible à la casse.
Ta propriété c’est Categoria, pas .categoria et encore moins categoria.categoria
Maintenant que Baladur a corrigé ta coloration syntaxique (voir le lien qu’il a ajouté tout en bas de ton message) on y voit plus clair.
Merci à lui.
Le Xaml est sensible à la casse.
Ta propriété c’est Categoria, pas .categoria et encore moins categoria.categoria
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
Modifié le 6 janv. 2021 à 03:43
Modifié le 6 janv. 2021 à 03:43
Merci beaucoup pour la correction syntaxique.
Oui en effet j’ai déjà essayer sans le point et en majuscule mais rien ne s’affiche ..
Oui en effet j’ai déjà essayer sans le point et en majuscule mais rien ne s’affiche ..
Utilisateur anonyme
6 janv. 2021 à 08:30
6 janv. 2021 à 08:30
Il doit y avoir un second soucis.
Je n’ai jamais codé avec Xamarain, il y a peut-être des différences avec WPF qui ne me sautent pas aux yeux
As tu mis des points d’arrêt
Est ce que les commandes fonctionnent?
Dans le modèle, Categoria ne déclenche pas PropertyChanged, ça peut venir de là
Je n’ai jamais codé avec Xamarain, il y a peut-être des différences avec WPF qui ne me sautent pas aux yeux
As tu mis des points d’arrêt
- dans le constructeur de la page pour vérifier que email, nome et categoria ont bien une valeur?
- dans le constructeur du view modèle et vérifié en pas à pas qu’il se déroule bien?
- dans les getter et setter des propriétés pour voir si à l'exécution ça y passe?
Est ce que les commandes fonctionnent?
Dans le modèle, Categoria ne déclenche pas PropertyChanged, ça peut venir de là
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
Modifié le 6 janv. 2021 à 09:24
Modifié le 6 janv. 2021 à 09:24
Aïe alors pour répondre plus ou moins à ta question:categoria a bien une valeur (je la voit sur firebase dans l’user connecter )
Je regarderais cette après midi mais par contre quand je met email à la place de categoria jai bien l’e-mail binder
Pis les commandes fonctionne (delete,update et logout)
Pis c’est quoi les point d’arrêt dont tu parle ?
Je regarderais cette après midi mais par contre quand je met email à la place de categoria jai bien l’e-mail binder
Pis les commandes fonctionne (delete,update et logout)
Pis c’est quoi les point d’arrêt dont tu parle ?
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
6 janv. 2021 à 09:33
6 janv. 2021 à 09:33
Encore une petite question. A quoi pense tu quand tu écris il doit y avoir des différences avec Wpf ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
6 janv. 2021 à 12:23
6 janv. 2021 à 12:23
Ce n’est pas parce qu’il y a une valeur dans la base de données qu’elle « arrive » jusqu’au modèle.
Et le fait que avec l’email cela fonctionne conforte cette hypothèse (sans pour autant balayer les autres....)
Pour bien coder il y a trois choses essentielles
Le 3ème point n’est manifestement pas acquis, alors avant d’aller plus loin, il faut que tu lises entièrement ce tuto https://docs.microsoft.com/fr-fr/visualstudio/debugger/debugger-feature-tour?view=vs-2019
(Le point d’arrêt étant le premier outil décrit, mais la suite est tout aussi essentielle)
Une fois fait la première chose à vérifier c’est qu’ici
Et là
Il y a bien une valeur dans les paramètres categoria et categoria2
Concernant les différences avec WPF, par exemple on utilise des Windows et le modèle est bindé sur la propriété DataContext, ici c’est ContentPage et la propriété BindingContext
Ça c’était facile à interpréter, mais s’il y a des subtilités moins évidentes, je passe forcément à côté.
PS je viens de m’apercevoir que tu as mis 2 fois le code de WelcomePageVM et pas celui de modele de login.
Et le fait que avec l’email cela fonctionne conforte cette hypothèse (sans pour autant balayer les autres....)
Pour bien coder il y a trois choses essentielles
- avoir une certaine logique
- connaitre les bases des langages utilisés
- savoir utiliser les outils de déboggage à bon escient.
Le 3ème point n’est manifestement pas acquis, alors avant d’aller plus loin, il faut que tu lises entièrement ce tuto https://docs.microsoft.com/fr-fr/visualstudio/debugger/debugger-feature-tour?view=vs-2019
(Le point d’arrêt étant le premier outil décrit, mais la suite est tout aussi essentielle)
Une fois fait la première chose à vérifier c’est qu’ici
public WelcomPage (string email , string nome , string categoria) { InitializeComponent (); welcomePageVM = new WelcomePageVM(email , nome,categoria); BindingContext = welcomePageVM; }
Et là
public WelcomePageVM(string email2, string nom2,string categoria2) { Email = email2; Nome = nom2; categoria = categoria2; }
Il y a bien une valeur dans les paramètres categoria et categoria2
Concernant les différences avec WPF, par exemple on utilise des Windows et le modèle est bindé sur la propriété DataContext, ici c’est ContentPage et la propriété BindingContext
Ça c’était facile à interpréter, mais s’il y a des subtilités moins évidentes, je passe forcément à côté.
PS je viens de m’apercevoir que tu as mis 2 fois le code de WelcomePageVM et pas celui de modele de login.
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
6 janv. 2021 à 14:00
6 janv. 2021 à 14:00
Ok merci beaucoup je regarde sa .
Et pis effectivement j'ai pas mis
Page LoginViewModel.cs la voici donc :
Et pis effectivement j'ai pas mis
Page LoginViewModel.cs la voici donc :
using System; using System.Collections.Generic; using System.ComponentModel; using System.Security.Cryptography; using System.Text; using System.Windows.Input; using Xamarin.Forms; using XF_Login.View; namespace XF_Login.ViewModel { public class LoginViewModel : INotifyPropertyChanged { public static byte[] GetHash(string inputString) { using (HashAlgorithm algorithm = SHA256.Create()) return algorithm.ComputeHash(Encoding.UTF8.GetBytes(inputString)); } public static string GetHashString(string inputString) { StringBuilder sb = new StringBuilder(); foreach (byte b in GetHash(inputString)) sb.Append(b.ToString("X2")); return sb.ToString(); } private string email; public string Email { get { return email; } set { email = value; PropertyChanged(this, new PropertyChangedEventArgs("Email")); } } private string nome; public string Nome { get { return nome; } set { nome = value; PropertyChanged(this, new PropertyChangedEventArgs("Nome")); } } private string categoria; public string Categoria { get { return categoria; } set { categoria = value; PropertyChanged(this, new PropertyChangedEventArgs("Categoria")); } } private string password; public event PropertyChangedEventHandler PropertyChanged; public string Password { get { return password; } set { password = value; PropertyChanged(this, new PropertyChangedEventArgs("Password")); } } public Command LoginCommand { get { return new Command(Login); } } public Command SignUp { get { return new Command(() => { App.Current.MainPage.Navigation.PushAsync(new XF_SignUpPage()); }); } } private async void Login() { //null or empty field validation, check weather email and password is null or empty if (string.IsNullOrEmpty(Email) || string.IsNullOrEmpty(Password)) await App.Current.MainPage.DisplayAlert("Empty Values", "Please enter Email and Password", "OK"); else { //call GetUser function which we define in Firebase helper class var user = await FirebaseHelper.GetUser(Email , Nome ,Categoria); //firebase return null valuse if user data not found in database if (user != null) if (Email == user.Email && GetHashString(Password) == user.Password) { await App.Current.MainPage.DisplayAlert("Login Success", "", "Ok"); //Navigate to Wellcom page after successfuly login //pass user email to welcom page await App.Current.MainPage.Navigation.PushAsync(new WelcomPage( email, nome,categoria)); } else await App.Current.MainPage.DisplayAlert("Login Fail", "Please enter correct Email and Password", "OK"); else await App.Current.MainPage.DisplayAlert("Login Fail", "User not found", "OK"); } } } }
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
6 janv. 2021 à 17:57
6 janv. 2021 à 17:57
Pas moyen de trouver , je me prend la tête dessus et je reste bloquer la ...
quand je teste avec le debuggeur sa execute le programme normalement sans s'arrêter a mes point d'arrêt ..(ou s'a ne les atteint même pas ..)
Une bonne nuit de sommeil fera sans doute du bien :-)
quand je teste avec le debuggeur sa execute le programme normalement sans s'arrêter a mes point d'arrêt ..(ou s'a ne les atteint même pas ..)
Une bonne nuit de sommeil fera sans doute du bien :-)
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
Modifié le 6 janv. 2021 à 18:13
Modifié le 6 janv. 2021 à 18:13
OKeee alors je viens de vérifier ou tu m'avais dis de voir si j'avais une value et résultat = categoria (null) string
A part sur l'email je n'est donc aucune valeur qui arrive
Part contre ici dans loginViewModel.CS
J'ai bien toutes les value qui sont lus
A part sur l'email je n'est donc aucune valeur qui arrive
Part contre ici dans loginViewModel.CS
await Application.Current.MainPage.Navigation.PushAsync(new WelcomPage( email, nome,categoria))
J'ai bien toutes les value qui sont lus
Utilisateur anonyme
6 janv. 2021 à 20:47
6 janv. 2021 à 20:47
Alors on avance..... un peu.
Dans WelcomPage, tu ne peux pas afficher Categoria puisqu'il ne l'a pas.
Mais en même temps, tu dis qu'à cette ligne
Il y a la valeur dans categoria. Ce qui est paradoxal.
Peux tu confirmer qu'il s'agit bien de la ligne numéro 102 dans le message n°7?
Si oui, essaye de mettre un point d'arrêt là, et d'exécuter à pas à pas détaillé, pour voir si tu vas bien dans le constructeur qui va bien et que les valeurs sont conservées.
Dans WelcomPage, tu ne peux pas afficher Categoria puisqu'il ne l'a pas.
Mais en même temps, tu dis qu'à cette ligne
await Application.Current.MainPage.Navigation.PushAsync(new WelcomPage( email, nome,categoria))
Il y a la valeur dans categoria. Ce qui est paradoxal.
Peux tu confirmer qu'il s'agit bien de la ligne numéro 102 dans le message n°7?
Si oui, essaye de mettre un point d'arrêt là, et d'exécuter à pas à pas détaillé, pour voir si tu vas bien dans le constructeur qui va bien et que les valeurs sont conservées.
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
7 janv. 2021 à 13:31
7 janv. 2021 à 13:31
Oui je confirme c’est bien cette ligne de loginViewmodel.
Je devrais voir quoi comme constructeur qui va bien ?
Je devrais voir quoi comme constructeur qui va bien ?
Utilisateur anonyme
7 janv. 2021 à 14:56
7 janv. 2021 à 14:56
Si par mégarde, tu as 2 classes qui s'appellent WelcomPage (dans 2 espaces de nom différents) et que celle qui est vraiment utilisée n’est pas celle que tu crois.
Sans trop y croire cela dit
Sans trop y croire cela dit
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
7 janv. 2021 à 16:49
7 janv. 2021 à 16:49
Utilisateur anonyme
7 janv. 2021 à 17:18
7 janv. 2021 à 17:18
OK, donc c'est avant que l'info se perd.
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
7 janv. 2021 à 17:50
7 janv. 2021 à 17:50
Donc si je comprends l’erreur doit être dans firehelper?
Utilisateur anonyme
7 janv. 2021 à 23:16
7 janv. 2021 à 23:16
Est ce que dans la page de login, l'utilisateur est sensé saisir le nom et la catégorie?
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
8 janv. 2021 à 03:14
8 janv. 2021 à 03:14
He non effectivement pas ..
Je vais enlever tous sa dans la page Login
Je vais enlever tous sa dans la page Login
Utilisateur anonyme
8 janv. 2021 à 07:48
8 janv. 2021 à 07:48
Ok alors dans ce bout de code regarde mes commentaires (peu importe que tu l'aies modifié depuis, ça te servira)
Mais plus encore dans ce bout de code
Tu ne fais rien de nome et categoria.
Une règle de bon sens veut qu'une méthode ne prend en paramètre que le strict nécessaire, ça évite de laisser croire (même à soi-même) que des données inutiles, servent à quelque chose.
PS, si tu ne sais pas ce qu'est un type valeur, et de fait un type référence, il est indispensable de lire https://codes-sources.commentcamarche.net/faq/750-la-difference-entre-les-types-valeur-et-les-types-reference
//Nome et Categoria sont nulls var user = await FirebaseHelper.GetUser(Email , Nome ,Categoria); //quoi qu'il se passe dans la méthode GetUser, ils sont toujours null, car se sont des type valeurs //par contre la méthode retourne un user.... if (user != null) if (Email == user.Email && GetHashString(Password) == user.Password) { await App.Current.MainPage.DisplayAlert("Login Success", "", "Ok"); //pourquoi ne pas utiliser user? //Plus pourquoi, le constructeur de WelcomPage prend 3 string en paramètre et pas directement user? await App.Current.MainPage.Navigation.PushAsync(new WelcomPage( email, nome,categoria)); }
Mais plus encore dans ce bout de code
public static async Task<Users> GetUser(string email, string nome ,string categoria) { try { var allUsers = await GetAllUser(); await firebase .Child("Users") .OnceAsync<Users>(); return allUsers.Where(a => a.Email == email).FirstOrDefault(); } catch (Exception e) { Debug.WriteLine($"Error:{e}"); return null; } }
Tu ne fais rien de nome et categoria.
Une règle de bon sens veut qu'une méthode ne prend en paramètre que le strict nécessaire, ça évite de laisser croire (même à soi-même) que des données inutiles, servent à quelque chose.
PS, si tu ne sais pas ce qu'est un type valeur, et de fait un type référence, il est indispensable de lire https://codes-sources.commentcamarche.net/faq/750-la-difference-entre-les-types-valeur-et-les-types-reference
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
Modifié le 8 janv. 2021 à 09:10
Modifié le 8 janv. 2021 à 09:10
Excellent merci pour l’explication je vais regarder sa cette après-midi.
En tous cas merci beaucoup de ton aide
J’ai quand même beaucoup de mal à m’imaginer la Logic de ces Value
Si je ne mes pas string nome et string categoria dans welcomepage :pourrais je quand même binder mes value ?
En tous cas merci beaucoup de ton aide
J’ai quand même beaucoup de mal à m’imaginer la Logic de ces Value
Si je ne mes pas string nome et string categoria dans welcomepage :pourrais je quand même binder mes value ?
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
8 janv. 2021 à 13:00
8 janv. 2021 à 13:00
A voilà donc si je comprends bien le simple faite de mettre user à la place de email,nome,et categoria fais référence à toutes les données de user ?
Utilisateur anonyme
>
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
8 janv. 2021 à 14:33
8 janv. 2021 à 14:33
Référence ayant un sens précis en programmation, on va formuler autrement mais en gros oui.
Je tache de te faire un exemple simple dans la soirée ou le week-end
Je tache de te faire un exemple simple dans la soirée ou le week-end
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
>
Utilisateur anonyme
8 janv. 2021 à 14:59
8 janv. 2021 à 14:59
je te remercie encore beaucoup de t'on implications .
Désoler pour toutes ces questions mais c'est vrai que c'est tellement intéressant que c'est vraiment cool de ta part
Désoler pour toutes ces questions mais c'est vrai que c'est tellement intéressant que c'est vraiment cool de ta part
Utilisateur anonyme
8 janv. 2021 à 19:03
8 janv. 2021 à 19:03
Alors on a une classe Personne
une méthode qui simule la recherche dans la BDD
Note qu'il n'y a besoin que de l'ID, il n'y a donc que ce paramètre
Un bout de code qui va permettre de demander le lancement de la fenêtre d'affichage.
C'est un peu différent de Xamarin, mais avec les commentaires ça se comprend
Le view model
Le xaml
là aussi, c'est un peu différent de Xamarin, mais ça me paraît lisible
et le code behind de la fenêtre
Et voilà
public class Personne : INotifyPropertyChanged { #region INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; /// <summary> /// Déclenche PropertyChanged /// </summary> /// <param name="Proprietes"></param> private void GenerePropertyChanged(params string[] Proprietes) { if (this.PropertyChanged != null) foreach (string p in Proprietes) PropertyChanged(this, new PropertyChangedEventArgs(p)); } #endregion private string nom; /// <summary> /// Nom de la personne /// </summary> public string Nom { get { return nom; } set { if (nom != value) { nom = value; GenerePropertyChanged("Nom", "NomComplet"); } } } private string prenom; /// <summary> /// Prénom de la personne /// </summary> public string Prenom { get { return prenom; } set { if (prenom != value) { prenom = value; GenerePropertyChanged("Prenom", "NomComplet"); } } } /// <summary> /// Nom et prénom de la personne /// </summary> public string NomComplet { get { return string.Format("{0} {1}", prenom, nom); } } }
une méthode qui simule la recherche dans la BDD
private Personne GetPersonne(int ID) { if (ID == 1) return new Personne { Nom = "Di", Prenom = "Alain" }; return null; }
Note qu'il n'y a besoin que de l'ID, il n'y a donc que ce paramètre
Un bout de code qui va permettre de demander le lancement de la fenêtre d'affichage.
Personne user = GetPersonne(1);//on cherche la bonne personne Window1 fenetre = new Window1(user); // on initialise la fenêtre fenetre.Show();//on affiche la fenetre
C'est un peu différent de Xamarin, mais avec les commentaires ça se comprend
Le view model
/// <summary> /// Il faudrait implémenter INotifyPropertyChanged /// </summary> public class PersonneViewModel { /// <summary> /// Le constructeur prend une personne en paramètre /// Personne est un type référence, si on modifie quelqu'un ici, c'est le même que dans la méthode appelante /// </summary> /// <param name="Quelquun"></param> public PersonneViewModel(Personne Quelquun) { Nom = Quelquun.Nom;//on affecte les propriétés, ce sont des types valeurs, si on modifie Nom, ça ne modifie pas Quelquun.Nom Prenom = Quelquun.Prenom; NomComplet = Quelquun.NomComplet; } public string Nom { get; set; } public string Prenom { get; set; } public string NomComplet { get; set; } }
Le xaml
<Window x:Class="Test_WPF.Window1" 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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Test_WPF" mc:Ignorable="d" Title="Window1" Height="200" Width="160" DataContext="{Binding}"> <Grid> <TextBox Text="{Binding Nom}" Height="20" Width="100" Margin="30,30, 0, 0" HorizontalAlignment="Left" VerticalAlignment="Top"/> <TextBox Text="{Binding Prenom}" Height="20" Width="100" Margin="30,60, 0, 0" HorizontalAlignment="Left" VerticalAlignment="Top"/> <TextBlock Text="{Binding NomComplet}" Height="20" Width="100" Margin="30,90, 0, 0" HorizontalAlignment="Left" VerticalAlignment="Top"/> </Grid> </Window>
là aussi, c'est un peu différent de Xamarin, mais ça me paraît lisible
et le code behind de la fenêtre
<Window x:Class="Test_WPF.Window1" 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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Test_WPF" mc:Ignorable="d" Title="Window1" Height="200" Width="160" DataContext="{Binding}"> <Grid> <TextBox Text="{Binding Nom}" Height="20" Width="100" Margin="30,30, 0, 0" HorizontalAlignment="Left" VerticalAlignment="Top"/> <TextBox Text="{Binding Prenom}" Height="20" Width="100" Margin="30,60, 0, 0" HorizontalAlignment="Left" VerticalAlignment="Top"/> <TextBlock Text="{Binding NomComplet}" Height="20" Width="100" Margin="30,90, 0, 0" HorizontalAlignment="Left" VerticalAlignment="Top"/> </Grid> </Window>
Et voilà
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
8 janv. 2021 à 19:30
8 janv. 2021 à 19:30
Merci beaucoup je regarde sa demain .
Tous ce que je sais c’est que quand je créer un nouvelle utilisateur en rentrant categoria nom ect et que je clique sur créer l’utilisateur..tous apparaît sur la page welcome page ..
Mais si je me déconnecte et me reconnecte ..plus rien Comme si j’ai merder au niveau du firebasehelper ..
Une bonne soirée et merci encore
Tous ce que je sais c’est que quand je créer un nouvelle utilisateur en rentrant categoria nom ect et que je clique sur créer l’utilisateur..tous apparaît sur la page welcome page ..
Mais si je me déconnecte et me reconnecte ..plus rien Comme si j’ai merder au niveau du firebasehelper ..
Une bonne soirée et merci encore
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
12 janv. 2021 à 12:04
12 janv. 2021 à 12:04
REbonjour , alors j'ai essayer de bien regarder mais je n'est toujours rien qui avance ..
Rien que sur la page Firehelper je n'est aucune value apart sous email et password après login dans le débogguer comme si aucune données n'étais reçus depuis firebase ..
Je suis prêt a abandonner tellement j'ai deja passer des heures la dessus pour aucun résultat.
Merci en tous cas d'avoir voulus m'aider , je comprendrais si aussi si tu laches l'affaire.
Une bonne journée en tous cas
Rien que sur la page Firehelper je n'est aucune value apart sous email et password après login dans le débogguer comme si aucune données n'étais reçus depuis firebase ..
Je suis prêt a abandonner tellement j'ai deja passer des heures la dessus pour aucun résultat.
Merci en tous cas d'avoir voulus m'aider , je comprendrais si aussi si tu laches l'affaire.
Une bonne journée en tous cas
Utilisateur anonyme
12 janv. 2021 à 16:58
12 janv. 2021 à 16:58
Bonjour
Ton dernier message ne peut pas me permettre de t’aider.
Tu as essayé de regarder quoi mon exemple qui est en wpf? Ou ton code en fonction de mon exemple?
Si tu as modifié ton code, tu ne l’a pas posté donc je ne peux pas me pencher sur ces modifs pour voir là où ça coince.
Par contre, il est évident que tu manques de bases.
Coder en XAML (WPF ou Xamarin peu importe) demande de connaitre
Et là, il me semble que le C# n’est pas assez solide et que l’objet tu ne l’as pas du tout.
Il serait certainement plus efficace de prendre quelques jours pour apprendre tout ça et revenir à ton application après.
Pour les bases de C#, ce cours est excellent https://tahe.developpez.com/dotnet/csharp/ ne snobe pas les premiers chapitres ;)
Pour l’objet, il y a beaucoup de tutos et de cours en ligne, mais beaucoup sont académiques et donc pas forcément clairs pour un autodidacte.
J’ai fini par écrire mon propre tuto qui reflète mon parcours autodidacte, en espérant qu’il serait utile à d’autres
https://codes-sources.commentcamarche.net/faq/11239-la-programmation-objet-appliquee-a-net-par-l-exemple-partie-1-sur-3
Ton dernier message ne peut pas me permettre de t’aider.
Tu as essayé de regarder quoi mon exemple qui est en wpf? Ou ton code en fonction de mon exemple?
Si tu as modifié ton code, tu ne l’a pas posté donc je ne peux pas me pencher sur ces modifs pour voir là où ça coince.
Par contre, il est évident que tu manques de bases.
Coder en XAML (WPF ou Xamarin peu importe) demande de connaitre
- correctement les bases de C#
- avoir une vue d’ensemble de la programmation objet (tout le binding repose sur l’objet)
Et là, il me semble que le C# n’est pas assez solide et que l’objet tu ne l’as pas du tout.
Il serait certainement plus efficace de prendre quelques jours pour apprendre tout ça et revenir à ton application après.
Pour les bases de C#, ce cours est excellent https://tahe.developpez.com/dotnet/csharp/ ne snobe pas les premiers chapitres ;)
Pour l’objet, il y a beaucoup de tutos et de cours en ligne, mais beaucoup sont académiques et donc pas forcément clairs pour un autodidacte.
J’ai fini par écrire mon propre tuto qui reflète mon parcours autodidacte, en espérant qu’il serait utile à d’autres
https://codes-sources.commentcamarche.net/faq/11239-la-programmation-objet-appliquee-a-net-par-l-exemple-partie-1-sur-3
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
15 janv. 2021 à 03:59
15 janv. 2021 à 03:59
Bonjour dans le message 18 tu m’a dis d’utiliser user mais je le met ou cette user ?
Ensuite j’ai essayer de le mettre en paramètre dans welcome page en le déclarant dans chaque page mais sa m’écris
Conversion impossible de models.users en string ..
Ensuite j’ai essayer de le mettre en paramètre dans welcome page en le déclarant dans chaque page mais sa m’écris
Conversion impossible de models.users en string ..
Utilisateur anonyme
15 janv. 2021 à 07:24
15 janv. 2021 à 07:24
Tu vois, c'est ça que je veux dire par
Par ce que c'est évident que user ne se convertit pas en string.
Vraiment, tu gagnerais du temps et de l'énergie à apprendre les bases.
PS dans mon exemple (en WPF certes), j'ai utilisé user
Et là, il me semble que le C# n’est pas assez solide et que l’objet tu ne l’as pas du tout..
Par ce que c'est évident que user ne se convertit pas en string.
Vraiment, tu gagnerais du temps et de l'énergie à apprendre les bases.
PS dans mon exemple (en WPF certes), j'ai utilisé user
toflfou
Messages postés
1320
Date d'inscription
mardi 18 mars 2008
Statut
Membre
Dernière intervention
6 septembre 2023
174
15 janv. 2021 à 09:20
15 janv. 2021 à 09:20
Ton exemple comme tu le dis est déjà en WPF se qui me mélange encore plus les pédales quand j’essaye de comprendre ..
Ensuite j’utilise firebase dans mon code que j’ai pries sur GitHub..donc apparemment il ne s’agit pas juste de vérifier les objets mais plutôt de changer carrément le code ..Après sur les codes que j’ai poster en haut sont juste selon-toi ?
Ou voit tu une erreur qui empêche d’avoir une donnée?
Je vais regarder et surtout me débrouiller avec ce truc .
Merci en tous cas de test commentaire.
Ensuite j’utilise firebase dans mon code que j’ai pries sur GitHub..donc apparemment il ne s’agit pas juste de vérifier les objets mais plutôt de changer carrément le code ..Après sur les codes que j’ai poster en haut sont juste selon-toi ?
Ou voit tu une erreur qui empêche d’avoir une donnée?
Je vais regarder et surtout me débrouiller avec ce truc .
Merci en tous cas de test commentaire.
Utilisateur anonyme
15 janv. 2021 à 11:51
15 janv. 2021 à 11:51
Je vais enfoncer des portes ouvertes:
Par contre, je m’aperçois que j’ai fait une boulette en copiant collant le dernier bout de code, au lieu du code behind de la fenêtre, j’ai remis le xaml.
Je reporterai ça ce soir
Ok WPF est un différent de Xamarin, mais ici les différences sont principalement dans le Xaml (et si tu as bien corrigé « .categoria », tu n’as à priori pas de problème de xaml).
La seule différence en code behind sera dans le bout code qui manque, avec un commentaire qui te dit comment ça doit être pour toi (en fonction de ce que j’ai vu dans ton code).
Mais (je sais j’insiste), ton vrai problème c’est les bases.
Je vais faire une analogie mathématique.
Je suppose que calculer 4 au carré ne te pose aucun problème.
Parce que tu sais que 4^2 = 4*4. Et que tu as appris la table du 4.
Et avant d’avoir appris les tables de multiplications, tu as appris que multiplier c’est additionner plusieurs fois le même nombre, donc 4*4 = 4+4+4+4.
Et avant tout ça, tu as appris à additionner.
Et bien ton soucis d’aujourd’hui, c’est un calcul de puissance alors que tu es en train d’apprendre l’addition.
Si tu en étais aux tables de multiplication, mon exemple, même incomplet, t’aurais parlé et peut-être même suffit.
- les données sont dans firebase => pas de problème d’enregistrement
- tu ne voies pas les enregistrements => ton code est incorrect.
Par contre, je m’aperçois que j’ai fait une boulette en copiant collant le dernier bout de code, au lieu du code behind de la fenêtre, j’ai remis le xaml.
Je reporterai ça ce soir
Ok WPF est un différent de Xamarin, mais ici les différences sont principalement dans le Xaml (et si tu as bien corrigé « .categoria », tu n’as à priori pas de problème de xaml).
La seule différence en code behind sera dans le bout code qui manque, avec un commentaire qui te dit comment ça doit être pour toi (en fonction de ce que j’ai vu dans ton code).
Mais (je sais j’insiste), ton vrai problème c’est les bases.
Je vais faire une analogie mathématique.
Je suppose que calculer 4 au carré ne te pose aucun problème.
Parce que tu sais que 4^2 = 4*4. Et que tu as appris la table du 4.
Et avant d’avoir appris les tables de multiplications, tu as appris que multiplier c’est additionner plusieurs fois le même nombre, donc 4*4 = 4+4+4+4.
Et avant tout ça, tu as appris à additionner.
Et bien ton soucis d’aujourd’hui, c’est un calcul de puissance alors que tu es en train d’apprendre l’addition.
Si tu en étais aux tables de multiplication, mon exemple, même incomplet, t’aurais parlé et peut-être même suffit.
Utilisateur anonyme
15 janv. 2021 à 18:28
15 janv. 2021 à 18:28
Voilà le code behind de la page xaml
public Window1(Personne Quelquun) { InitializeComponent(); this.DataContext = new PersonneViewModel(Quelquun); //on binde la fenetre sur le view model //ce qui pour toi doit correspondre à //BindingContext = new PersonneViewModel(Quelquun); }