Question WPF/PS - Textbox

Plus d'informations
il y a 8 ans 10 mois #23909 par Guillaume
WPF/PS - Textbox a été créé par Guillaume
Bonjour,

Avec les WinForms, quand on a une textbox dans laquelle on veut ajouter du texte on fait :

[code:1]$textbox.Text = \"Exemple\"[/code:1]

ou pour en ajouter :

[code:1]$textbox.text.AppendText(\"Exemple 2\"«»)[/code:1]

Quand je fais la même chose avec du WPF/XAML, ça ne fonctionne pas...

XAML
[code:1]<TextBox Name=\"AU_Champ_resultats\" HorizontalAlignment=\"Left\" Height=\"532\" Margin=\"10,215,0,0\" TextWrapping=\"Wrap\" VerticalAlignment=\"Top\" Width=\"966\" FontWeight=\"Normal\" IsReadOnly=\"False\"/>[/code:1]

PS
[code:1]# VARIABLES
$AU_Bouton_Retour_Menu = $Affichage.FindName(\"AU_Bouton_Retour_Menu\"«»)
$AU_Champ_Resultats = $Affichage.FindName(\"AU_Champ_Resultats\"«»)[/code:1]

# ACTION
[code:1]$AU_Champ_Resultats.Text = \"OK !\"[/code:1]

Et j'ai ça :

La propriété « Text » 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:165 : 1
+ $AU_Champ_Resultats.Text = \"OK !\"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : ( : ) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound


Comment dois-je faire pour écrire du texte prédéfini dans cette textbox ?

Merci par avance.

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

Plus d'informations
il y a 8 ans 10 mois #23910 par Guillaume
Réponse de Guillaume sur le sujet Re:WPF/PS - Textbox
Bon, je pense que j'ai pigé...

TextBox Name=\"AU_Champ_resultats\"
$AU_Champ_Resultats = $Affichage.FindName(\"AU_Champ_Resultats\")

A priori, si quelqu'un peut le confirmer, il faut respecter la casse. Maintenant ça marche. :dry:

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

Plus d'informations
il y a 8 ans 10 mois #23911 par Marc
Réponse de Marc sur le sujet Re:WPF/PS - Textbox
Salut,
oui findname est case sensitive.

Moi j'aime bien utiliser le parsing des conteneur, on peux retrouver un objet avec n'importe laquelle de ses propriété.

Exemple avec une Grid:
[code:1]
[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\"
Width = \"200\" Height = \"200\" ShowInTaskbar = \"True\">
<Grid x:Name=\"GeneralGrid\">
<TextBox x:Name=\"TextBox1\" HorizontalAlignment=\"Left\" Height=\"23\" Margin=\"10,101,0,0\" TextWrapping=\"Wrap\" Text=\"TextBox\" VerticalAlignment=\"Top\" Width=\"120\"/>
<Grid x:Name=\"GridCheckBox\" HorizontalAlignment=\"Left\" Height=\"59\" Margin=\"10,37,0,0\" VerticalAlignment=\"Top\" Width=\"92\">
<CheckBox x:Name=\"CheckBox1\" Content=\"CheckBox1\" HorizontalAlignment=\"Left\" Margin=\"8,7,0,0\" VerticalAlignment=\"Top\" IsEnabled=\"False\"/>
<CheckBox x:Name=\"CheckBox2\" Content=\"CheckBox2\" HorizontalAlignment=\"Left\" Margin=\"8,30,0,0\" VerticalAlignment=\"Top\" IsEnabled=\"False\"/>
</Grid>
</Grid>
</Window>
\"@



$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$windows = [windows.markup.Xamlreader]::Load($reader)

#Avec FinName je charge mes grid
$GeneralGrid = $windows.FindName(\"GeneralGrid\"«»)
$GridCheckBox = $windows.FindName(\"GridCheckBox\"«»)

#Avec Where-Object je parse ma GeneralGrid pour trouver ma textbox et lui affecter \"coucou\"
($GeneralGrid.Children|where{$_.name -eq \"TextBox1\"}).text = \"coucou\"

#ou encore je cherche mes CheckBox et les active
$GridCheckBox.Children|where{$_ -is [System.Windows.Controls.Primitives.ToggleButton]}|Foreach{$_.Isenabled = $true}

$windows.showdialog()
[/code:1]

Cela peut paraitre moins pratique que FindName mais au fils du temps on se rend compte que pas du tout surtout quand on doit agir sur plusieurs objets.

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

Plus d'informations
il y a 8 ans 10 mois #23922 par Guillaume
Réponse de Guillaume sur le sujet Re:WPF/PS - Textbox
Merci pour le conseil, je vais essayer de voir ça dans un second temps ;)

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

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