Question
[Résolu] Evènement combobox WPF
- Guillaume
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 116
- Remerciements reçus 0
Je développé un script avec une interface graphique en utilisant les Windows Forms. Avant d'ajouter d'autres fonctions, je souhaite changer l'interface en utilisant le duo XAML/WPF (et c'est chaud...
J'ai donc recréé l'interface via Visual Studio 2017 Express et j'ai copié le code dans un fichier \".xaml\" que j'appelle dans mon nouveau code Powershell. L'interface s'affiche bien et les différents éléments aussi.
Par contre, pour les évènements, c'est autre chose. Autant, avec un bouton, j'y arrive (par exemple, ouvrir un fichier PDF), autant avec une combobox j'ai un souci.
Un exemple : j'ai une combobox qui, selon l'élément choisi, doit activer ou désactiver deux checkbox.
Voici les éléments de code concernés :
XAML :
[code:1]<Label Content=\"Contrat :\" HorizontalAlignment=\"Left\" Margin=\"330,40,0,0\" VerticalAlignment=\"Top\" FontWeight=\"Normal\" Height=\"25\" Width=\"90\" Padding=\"5,2,5,5\"/>
<ComboBox Name=\"AU_Contrat\" HorizontalAlignment=\"Left\" Margin=\"425,40,0,0\" VerticalAlignment=\"Top\" Width=\"180\" FontWeight=\"Normal\" ToolTip=\"Contrat du nouvel utilisateur\">
<ComboBoxItem Height=\"22\" Content=\"CDI\"/>
<ComboBoxItem Height=\"22\" Content=\"CDD\"/>
<ComboBoxItem Height=\"22\" Content=\"Intérim\"/>
</ComboBox>[/code:1]
PowerShell :
[code:1]# VARIABLES INTERFACE
$AU_Contrat = $Affichage.FindName(\"AU_Contrat\")
$AU_Checkbox_Mail = $Affichage.FindName(\"AU_Checkbox_Mail\")
$AU_Checkbox_Partage = $Affichage.FindName(\"AU_Checkbox_Partage\")
# FONCTIONS FORMULAIRE
Function Interim {
If ($AU_Contrat.Text -eq \"Intérim\")
{ $AU_Checkbox_Mail.IsEnabled = $True ; $AU_Checkbox_Partage.IsEnabled = $True }
Else { $AU_Checkbox_Mail.IsEnabled = $False ; $AU_Checkbox_Mail.IsChecked = $False ; $AU_Checkbox_Partage.IsEnabled = $False ; $AU_Checkbox_Partage.IsChecked = $False }
}
$AU_Contrat.Add_SelectionChanged({Interim})[/code:1]
Pas de message d'erreur, mais rien ne se passe sur l'interface alors que les checkbox devrait être actives.
Message édité par: Guillaume_F, à: 4/07/17 12:36<br><br>Message édité par: Guillaume_F, à: 5/07/17 13:01
Connexion ou Créer un compte pour participer à la conversation.
- Marc
- Hors Ligne
- Membre premium
-
- Messages : 90
- Remerciements reçus 0
il me semble que le propriété IsEnabled est destiné à la lecteur de l'état de l'objet et non a sa définition.
Il vaut mieux utiliser la propriété Enabled
Idem pour IsChecked...<br><br>Message édité par: marcci, à: 4/07/17 12:54
Connexion ou Créer un compte pour participer à la conversation.
- Guillaume
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 116
- Remerciements reçus 0
La propriété « Enabled » est introuvable dans cet objet. Vérifiez qu’elle existe et qu’elle peut être définie.
Au caractère C:\Users\g.fombonne\Documents\Administration\Powershell\Administration\Gestion_WPF.ps1:104 : 12
+ Else { $AU_Checkbox_Mail.Enabled = $False ; $AU_Checkbox_Mail.Che ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : ( : ) [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException
La propriété « Checked » est introuvable dans cet objet. Vérifiez qu’elle existe et qu’elle peut être définie.
Au caractère C:\Users\g.fombonne\Documents\Administration\Powershell\Administration\Gestion_WPF.ps1:104 : 49
+ ... ox_Mail.Enabled = $False ; $AU_Checkbox_Mail.Checked = $False ; $AU_C ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : ( : ) [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException
La propriété « Enabled » est introuvable dans cet objet. Vérifiez qu’elle existe et qu’elle peut être définie.
Au caractère C:\Users\g.fombonne\Documents\Administration\Powershell\Administration\Gestion_WPF.ps1:104 : 86
+ ... Mail.Checked = $False ; $AU_Checkbox_Partage.Enabled = $False ; $AU_C ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : ( : ) [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException
La propriété « Checked » est introuvable dans cet objet. Vérifiez qu’elle existe et qu’elle peut être définie.
Au caractère C:\Users\g.fombonne\Documents\Administration\Powershell\Administration\Gestion_WPF.ps1:104 : 126
+ ... ox_Partage.Enabled = $False ; $AU_Checkbox_Partage.Checked = $False }
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : ( : ) [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException
Aucune erreur quand le \"Is\" est présent mais ça ne fait rien pour autant.<br><br>Message édité par: Guillaume_F, à: 4/07/17 14:10
Connexion ou Créer un compte pour participer à la conversation.
- Marc
- Hors Ligne
- Membre premium
-
- Messages : 90
- Remerciements reçus 0
pardon
Ton code est long ?
Si tu peux en passer un bout fonctionnel ça aiderait.
Quand je dit fonctionnel, c'est si je le copie/colle et que je lance j'ai la fenêtre qui s'affiche avec les objets.<br><br>Message édité par: marcci, à: 4/07/17 14:46
Connexion ou Créer un compte pour participer à la conversation.
- Guillaume
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 116
- Remerciements reçus 0
Ce sera sûrement plus présentable que de le poster ici. Même en découpant le strict nécessaire, ça fait long.
Merci de ton aide.
Connexion ou Créer un compte pour participer à la conversation.
- Guillaume
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 116
- Remerciements reçus 0
Sur la checkbox, à la place de IsEnabled=\"False\", je voudrais lier un item de la combobox à l'activation de la checkbox.
Ce serait limite plus simple. Comme je débute sur XAML/WPF je n'ai jamais fait ça et je galère à trouver un équivalent sur Google (pas mal de choses s'en rapprochent mais pas jusqu'à ce que je souhaite).
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Evènement combobox WPF