J'ai un problème dans un développement WPF.
Dans un usercontrol, je déclare dans la section resources, un
objectdataprovider :
<!--Source pour la combobox Gérants-->
<ObjectDataProvider x:Key="GerantsValues" MethodName="GetGerants"
ObjectType="{x:Type BLL:CompteManager}"/>
Celui-ci pointe sur une méthode static dans un autre projet :
public static IEnumerable<ConsoPTF.Gerant> GetGerants()
{
if (db == null)
db = new ConsoPTFDataContext(ConnectionString);
return( from g in db.Gerants
select g);
}
Le dataContext est initialisé avec une variable static "ConnectionString"
chargée au lancement de l'application.
Toutes mes classes proviennent d'un fichier dbml créé à partir de ma base
SQL Server, donc Linq to SQL
Dans mon usercontrol j'affiche une Combobox placée dans un Grid dont le
datacontext est bindé à une instance de ma classe Compte
Lorsque je lance l'application et que j'ouvre un compte, ma combobox
m'affiche bien la valeur "ClasserSous" correspond à la propriété de ma
classe compte CodeGerant (l'équivalent de CodeBIP dans ma classe Gerants)
mais dans le designer j'ai toujours cette erreur :
Error 1 Value cannot be null.
Parameter name: fileOrServerOrConnection C:\Users\gbl\Documents\Visual
Studio
2008\Projects\AURISGestion\AURISGestion.WPFUI\UserControls\ucCompte.xaml 165
9 AURISGestion.WPFUI
Je pense que ça a un rapport avec la façon dont j'instancie mon datacontext
mais je ne vois pas où je me trompe...
De plus, dans mon usercontrol, j'intercepte l'événement
this.compte.PropertyChanged += new
PropertyChangedEventHandler(compte_PropertyChanged);
afin de savoir si une propriété a été modifiée et dans ce cas proposer
l'enregistrement à la fermeture. Ca fonctionne pour toutes les propriétés
sauf pour celles bindées à des combobox (j'en ai plusieurs comme l'exemple
ci-dessus et toutes ont la même erreur).
Je ne sais pas si c'est liée ou si c'est un autre problème mais je sèche.
Merci d'avance.
--
Cordialement
Clark
Mon nouveau blog : http://blogs.codes-sources.com/clark
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clark [MVP CRM]
Bonjour J'ai contourné finalement mon problème de cette façon Je crée mon ObjectDataProvider de cette façon : <ObjectDataProvider x:Key="GerantsValues"/> Et je l'instancie dans le constructeur du UserControl : ObjectDataProvider odpGerants = this.FindResource("GerantsValues") as ObjectDataProvider; if (odpGerants != null) odpGerants.ObjectInstance = CompteManager.GetGerants(); Pas très satisfaisant mais au moins je n'ai plus le bug d'affichage... Pour l'évenement propertychanged qui n'était pas levé par un changement de valeur de la combobox, il manquait bêtement Mode=TwoWay dans le Binding : <ComboBox Name="GerantsComboBox" Width="150" ItemsSource="{Binding Source={StaticResource GerantsValues}}" DisplayMemberPath="ClasserSous" SelectedValuePath="CodeBIP" SelectedValue="{Binding Path=CodeGerant, Mode=TwoWay}" />
-- Cordialement Clark Mon nouveau blog : http://blogs.codes-sources.com/clark
"Clark [MVP CRM]" a écrit dans le message de news:
Bonjour
J'ai un problème dans un développement WPF. Dans un usercontrol, je déclare dans la section resources, un objectdataprovider :
<!--Source pour la combobox Gérants--> <ObjectDataProvider x:Key="GerantsValues" MethodName="GetGerants" ObjectType="{x:Type BLL:CompteManager}"/>
Celui-ci pointe sur une méthode static dans un autre projet :
public static IEnumerable<ConsoPTF.Gerant> GetGerants() { if (db == null) db = new ConsoPTFDataContext(ConnectionString); return( from g in db.Gerants select g); }
Le dataContext est initialisé avec une variable static "ConnectionString" chargée au lancement de l'application. Toutes mes classes proviennent d'un fichier dbml créé à partir de ma base SQL Server, donc Linq to SQL
Dans mon usercontrol j'affiche une Combobox placée dans un Grid dont le datacontext est bindé à une instance de ma classe Compte
Lorsque je lance l'application et que j'ouvre un compte, ma combobox m'affiche bien la valeur "ClasserSous" correspond à la propriété de ma classe compte CodeGerant (l'équivalent de CodeBIP dans ma classe Gerants) mais dans le designer j'ai toujours cette erreur :
Error 1 Value cannot be null. Parameter name: fileOrServerOrConnection C:UsersgblDocumentsVisual Studio 2008ProjectsAURISGestionAURISGestion.WPFUIUserControlsucCompte.xaml 165 9 AURISGestion.WPFUI
Je pense que ça a un rapport avec la façon dont j'instancie mon datacontext mais je ne vois pas où je me trompe...
De plus, dans mon usercontrol, j'intercepte l'événement this.compte.PropertyChanged += new PropertyChangedEventHandler(compte_PropertyChanged); afin de savoir si une propriété a été modifiée et dans ce cas proposer l'enregistrement à la fermeture. Ca fonctionne pour toutes les propriétés sauf pour celles bindées à des combobox (j'en ai plusieurs comme l'exemple ci-dessus et toutes ont la même erreur). Je ne sais pas si c'est liée ou si c'est un autre problème mais je sèche.
Merci d'avance. -- Cordialement Clark Mon nouveau blog : http://blogs.codes-sources.com/clark
Bonjour
J'ai contourné finalement mon problème de cette façon
Je crée mon ObjectDataProvider de cette façon :
<ObjectDataProvider x:Key="GerantsValues"/>
Et je l'instancie dans le constructeur du UserControl :
ObjectDataProvider odpGerants =
this.FindResource("GerantsValues") as ObjectDataProvider;
if (odpGerants != null) odpGerants.ObjectInstance =
CompteManager.GetGerants();
Pas très satisfaisant mais au moins je n'ai plus le bug d'affichage...
Pour l'évenement propertychanged qui n'était pas levé par un changement de
valeur de la combobox, il manquait bêtement Mode=TwoWay dans le Binding :
<ComboBox Name="GerantsComboBox" Width="150"
ItemsSource="{Binding Source={StaticResource
GerantsValues}}"
DisplayMemberPath="ClasserSous"
SelectedValuePath="CodeBIP"
SelectedValue="{Binding Path=CodeGerant,
Mode=TwoWay}" />
--
Cordialement
Clark
Mon nouveau blog : http://blogs.codes-sources.com/clark
"Clark [MVP CRM]" <clark@nospam.nospam> a écrit dans le message de
news:1C7FB6E6-7594-41A9-863B-6986ACC60BFF@microsoft.com...
Bonjour
J'ai un problème dans un développement WPF.
Dans un usercontrol, je déclare dans la section resources, un
objectdataprovider :
<!--Source pour la combobox Gérants-->
<ObjectDataProvider x:Key="GerantsValues" MethodName="GetGerants"
ObjectType="{x:Type BLL:CompteManager}"/>
Celui-ci pointe sur une méthode static dans un autre projet :
public static IEnumerable<ConsoPTF.Gerant> GetGerants()
{
if (db == null)
db = new ConsoPTFDataContext(ConnectionString);
return( from g in db.Gerants
select g);
}
Le dataContext est initialisé avec une variable static "ConnectionString"
chargée au lancement de l'application.
Toutes mes classes proviennent d'un fichier dbml créé à partir de ma base
SQL Server, donc Linq to SQL
Dans mon usercontrol j'affiche une Combobox placée dans un Grid dont le
datacontext est bindé à une instance de ma classe Compte
Lorsque je lance l'application et que j'ouvre un compte, ma combobox
m'affiche bien la valeur "ClasserSous" correspond à la propriété de ma
classe compte CodeGerant (l'équivalent de CodeBIP dans ma classe Gerants)
mais dans le designer j'ai toujours cette erreur :
Error 1 Value cannot be null.
Parameter name: fileOrServerOrConnection C:UsersgblDocumentsVisual
Studio
2008ProjectsAURISGestionAURISGestion.WPFUIUserControlsucCompte.xaml
165 9 AURISGestion.WPFUI
Je pense que ça a un rapport avec la façon dont j'instancie mon
datacontext mais je ne vois pas où je me trompe...
De plus, dans mon usercontrol, j'intercepte l'événement
this.compte.PropertyChanged += new
PropertyChangedEventHandler(compte_PropertyChanged);
afin de savoir si une propriété a été modifiée et dans ce cas proposer
l'enregistrement à la fermeture. Ca fonctionne pour toutes les propriétés
sauf pour celles bindées à des combobox (j'en ai plusieurs comme l'exemple
ci-dessus et toutes ont la même erreur).
Je ne sais pas si c'est liée ou si c'est un autre problème mais je sèche.
Merci d'avance.
--
Cordialement
Clark
Mon nouveau blog : http://blogs.codes-sources.com/clark
Bonjour J'ai contourné finalement mon problème de cette façon Je crée mon ObjectDataProvider de cette façon : <ObjectDataProvider x:Key="GerantsValues"/> Et je l'instancie dans le constructeur du UserControl : ObjectDataProvider odpGerants = this.FindResource("GerantsValues") as ObjectDataProvider; if (odpGerants != null) odpGerants.ObjectInstance = CompteManager.GetGerants(); Pas très satisfaisant mais au moins je n'ai plus le bug d'affichage... Pour l'évenement propertychanged qui n'était pas levé par un changement de valeur de la combobox, il manquait bêtement Mode=TwoWay dans le Binding : <ComboBox Name="GerantsComboBox" Width="150" ItemsSource="{Binding Source={StaticResource GerantsValues}}" DisplayMemberPath="ClasserSous" SelectedValuePath="CodeBIP" SelectedValue="{Binding Path=CodeGerant, Mode=TwoWay}" />
-- Cordialement Clark Mon nouveau blog : http://blogs.codes-sources.com/clark
"Clark [MVP CRM]" a écrit dans le message de news:
Bonjour
J'ai un problème dans un développement WPF. Dans un usercontrol, je déclare dans la section resources, un objectdataprovider :
<!--Source pour la combobox Gérants--> <ObjectDataProvider x:Key="GerantsValues" MethodName="GetGerants" ObjectType="{x:Type BLL:CompteManager}"/>
Celui-ci pointe sur une méthode static dans un autre projet :
public static IEnumerable<ConsoPTF.Gerant> GetGerants() { if (db == null) db = new ConsoPTFDataContext(ConnectionString); return( from g in db.Gerants select g); }
Le dataContext est initialisé avec une variable static "ConnectionString" chargée au lancement de l'application. Toutes mes classes proviennent d'un fichier dbml créé à partir de ma base SQL Server, donc Linq to SQL
Dans mon usercontrol j'affiche une Combobox placée dans un Grid dont le datacontext est bindé à une instance de ma classe Compte
Lorsque je lance l'application et que j'ouvre un compte, ma combobox m'affiche bien la valeur "ClasserSous" correspond à la propriété de ma classe compte CodeGerant (l'équivalent de CodeBIP dans ma classe Gerants) mais dans le designer j'ai toujours cette erreur :
Error 1 Value cannot be null. Parameter name: fileOrServerOrConnection C:UsersgblDocumentsVisual Studio 2008ProjectsAURISGestionAURISGestion.WPFUIUserControlsucCompte.xaml 165 9 AURISGestion.WPFUI
Je pense que ça a un rapport avec la façon dont j'instancie mon datacontext mais je ne vois pas où je me trompe...
De plus, dans mon usercontrol, j'intercepte l'événement this.compte.PropertyChanged += new PropertyChangedEventHandler(compte_PropertyChanged); afin de savoir si une propriété a été modifiée et dans ce cas proposer l'enregistrement à la fermeture. Ca fonctionne pour toutes les propriétés sauf pour celles bindées à des combobox (j'en ai plusieurs comme l'exemple ci-dessus et toutes ont la même erreur). Je ne sais pas si c'est liée ou si c'est un autre problème mais je sèche.
Merci d'avance. -- Cordialement Clark Mon nouveau blog : http://blogs.codes-sources.com/clark