Question CheckBox dans une listebox

Plus d'informations
il y a 8 ans 10 mois #20198 par kevinklein
Bonjour la team,

Je souhaite mettre en place une listebox contenant des checkbox pour chaque item déclaré dans le code en powershell.
Mon GUI est développé en XAML , j'ai vu un exemple sur le net que les checkbox sont définis et déclarés au préalable avec les items dans le code XAML.:woohoo:
Ci-dessous l'exemple récupéré sur le net :

[code:1]#Build the GUI
[xml]$xaml =
@\"
<Window
xmlns=\"schemas.microsoft.com/winfx/2006/xaml/presentation\";
xmlns:«»x=\"schemas.microsoft.com/winfx/2006/xaml\";
x:Name=\"Window\" Title=\"Initial Window\" WindowStartupLocation = \"CenterScreen\"
SizeToContent = \"WidthAndHeight\" ShowInTaskbar = \"True\" Background = \"lightgray\">
<StackPanel >
<CheckBox x:Name=\"Item1\" Content = 'Item1'/>
<CheckBox x:Name=\"Item2\" Content = 'Item2'/>
<CheckBox x:Name=\"Item3\" Content = 'Item3'/>
<TextBox />
</StackPanel>
</Window>
\"@

$reader=(New-Object System.Xml.XmlNodeReader $xaml)
$Window=[Windows.Markup.XamlReader]::Load( $reader )

$Item1 = $Window.FindName('Item1')
$Item2 = $Window.FindName('Item2')
$Item3 = $Window.FindName('Item3')

$Window.Showdialog() | Out-Null[/code:1]

Y'aurai-t'il un moyen d’incrémenter dans une boucle les checkbox et les items dans le code en powershell ?

J'attends vos réponses :P
Merci d'avance ;)<br><br>Message édité par: kevinklein, à: 18/06/15 10:26

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

Plus d'informations
il y a 8 ans 10 mois #20203 par Richard Lazaro
Bonjour,

Tout d'abord tu n'es pas dans la bonne partie du forum, car tu demandes de l'aide et c'est donc pas une discussion \&quot;générale\&quot; (un admin le déplacera surement à un moment donné :)).

Aprés, concernant la génération de tes checkbox, quand veux tu rajouter dynamiquement des checkbox ?
- Lors de la création de ta fenêtre ?
- Pendant que ta fenêtre est ouverte ?

Dans le premier cas, tu peux te contenter de modifier le XAML (texte) pour ajouter les balises CheckBox necessaire.

Pour le deuxième cas, il faut que je regarde un peu de mon côté car j'ai pas la solution directe.

Bien Cordialement,
Richard LAZARO.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\&quot;Problems cannot be solved by the same level of thinking that created them.\\&quot; - Albert Einstein

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

Plus d'informations
il y a 8 ans 10 mois #20213 par kevinklein
Réponse de kevinklein sur le sujet Re:CheckBox dans une listebox
Merci Richard pour ta réponse. (désolé si je ne suis pas dans la bonne section...)
En gros mes checkbox doivent être rajoutés dynamiquement après que la fenêtre soit ouverte.
Je m'explique : dans mon interface en XAML je clique sur une bouton qui fait appel à un objet pour se connecter à une application. Mon objet récupère une liste de noms. La liste est ensuite stockée dans un tableau. Je parcoure la liste de noms dans une boucle et j'insère chaque nom dans un item.
Chaque item doit disposer d'un checkbox.
Merci encore pour ton aide ;)<br><br>Message édité par: kevinklein, à: 18/06/15 12:01

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

Plus d'informations
il y a 8 ans 10 mois #20222 par Richard Lazaro
Alors pour faire cela, il faut regarder des exemples en C# majoritairement et les \&quot;traduire\&quot; en Powershell.

Si tu as des questions de comprehension, je suis là pour essayer d'y répondre. Mais essaye de comprendre le code ci-dessous avant de le réutiliser ;)

Mais en gros, Je récupère le controle parent (Stack)
Lors de l'action clique sur le bouton, je vais créer un nouveau objet checkbox et l'initialiser.
Puis je le rajoute au controle parent.

Note la définition de la variable en option AllScope. Sans cela, le compteur ne s'incrémente pas et on a des Name identique pour les checkbox ... pas bon !

[code:1]
#Build the GUI
[xml]$xaml =
@\&quot;
&lt;Window
xmlns=\&quot;schemas.microsoft.com/winfx/2006/xaml/presentation\";
xmlns:«»x=\&quot;schemas.microsoft.com/winfx/2006/xaml\";
x:Name=\&quot;Window\&quot; Title=\&quot;Initial Window\&quot; WindowStartupLocation = \&quot;CenterScreen\&quot;
SizeToContent = \&quot;WidthAndHeight\&quot; ShowInTaskbar = \&quot;True\&quot; Background = \&quot;lightgray\&quot;&gt;
&lt;StackPanel x:Name=\&quot;Stack\&quot;&gt;
&lt;CheckBox x:Name=\&quot;Item1\&quot; Content = 'Item1'/&gt;
&lt;CheckBox x:Name=\&quot;Item2\&quot; Content = 'Item2'/&gt;
&lt;CheckBox x:Name=\&quot;Item3\&quot; Content = 'Item3'/&gt;
&lt;Button x:Name=\&quot;Button\&quot; Content=\&quot;Add Checkbox\&quot; /&gt;
&lt;/StackPanel&gt;
&lt;/Window&gt;
\&quot;@

$reader=(New-Object System.Xml.XmlNodeReader $xaml)
$Window=[Windows.Markup.XamlReader]::Load( $reader )

$Item1 = $Window.FindName('Item1')
$Item2 = $Window.FindName('Item2')
$Item3 = $Window.FindName('Item3')

$Stack = $Window.FindName('Stack')
$Button = $Window.FindName('Button')

New-Variable -Name cptCheckBox -Option AllScope -Value 0 -Force

$Button.Add_Click({
$newCheck = New-Object System.Windows.Controls.CheckBox
$newCheck.Name = \&quot;CheckItem$cptCheckBox\&quot;
$newCheck.Content = \&quot;CheckItem$cptCheckBox\&quot;

$Stack.Children.Add($newCheck)

$cptCheckBox++
})

$Window.Showdialog() | Out-Null
[/code:1]

Bien Cordialement,
Richard LAZARO.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\&quot;Problems cannot be solved by the same level of thinking that created them.\\&quot; - Albert Einstein

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

Plus d'informations
il y a 8 ans 10 mois #20227 par kevinklein
Réponse de kevinklein sur le sujet Re:CheckBox dans une listebox
Merci Richard :) ton code m'aide beaucoup
J'ai compris comment tu as procédé.
@+

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

Plus d'informations
il y a 8 ans 10 mois #20237 par kevinklein
Réponse de kevinklein sur le sujet Re:CheckBox dans une listebox
Re la team,

Est ce que quelqu'un pourrait me dire comment récupérer le nom d'un item quand la checkbox correspondante a été cochée ?

Merci d'avance :)<br><br>Message édité par: kevinklein, à: 22/06/15 08:36

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

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