Question [Résolu] Evènement combobox WPF

Plus d'informations
il y a 8 ans 10 mois #23869 par Guillaume
Bonjour,

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...:pinch: ).

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.

Plus d'informations
il y a 8 ans 10 mois #23870 par Marc
Réponse de Marc sur le sujet Re:Evènement combobox WPF
Salut,
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 :whistle:

Idem pour IsChecked...<br><br>Message édité par: marcci, à: 4/07/17 12:54

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 10 mois #23871 par Guillaume
Réponse de Guillaume sur le sujet Re:Evènement combobox WPF
J'ai ce message d'erreur si je fais comme tu indiques :

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 \&quot;Is\&quot; 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.

Plus d'informations
il y a 8 ans 10 mois #23873 par Marc
Réponse de Marc sur le sujet Re:Evènement combobox WPF
A oui flute on est sur du Windows.control et non du Windows.form

pardon :blush:

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.

Plus d'informations
il y a 8 ans 10 mois #23876 par Guillaume
Réponse de Guillaume sur le sujet Re:Evènement combobox WPF
Tu aurais une adresse mail où je peux t'envoyer le code ?

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.

Plus d'informations
il y a 8 ans 10 mois #23878 par Guillaume
Réponse de Guillaume sur le sujet Re:Evènement combobox WPF
Sinon, plutôt que dans le script Powershell, je pense qu'il est possible de le prévoir dans le XAML mais je n'y arrive pas...

Sur la checkbox, à la place de IsEnabled=\&quot;False\&quot;, 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.

Temps de génération de la page : 0.040 secondes
Propulsé par Kunena