Question
Importer tableau à 2D dans listview
- Youbou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 9 ans 11 mois #21665
par Youbou
Importer tableau à 2D dans listview a été créé par Youbou
Bonjour,
Je souhaite faire une interface en XAML dans laquelle j'aurais une listview avec plusieurs colonnes que je peuple avec un tableau à 2 dimensions en utilisant la méthode ItemsSource. La méthode fonctionne bien avec un tableau à 1 dimensions mais pas comme je le souhaiterais avec un tableau à 2 dimensions, au lieu de m'afficher les valeurs de mon tableau il affiche : Tableau de Object[]
Pour info je fais mon tableau de la manière suivante:
[code:1]$aInfo=,(\"1\",\"2\",\"3\"«»)
$aInfo+=,(\"a\",\"b\",\"c\"«»)[/code:1]
Avez vous une idée? Est ce possible d'importer un tableau 2D en utilisant ItemsSource?
Merci d'avance
Je souhaite faire une interface en XAML dans laquelle j'aurais une listview avec plusieurs colonnes que je peuple avec un tableau à 2 dimensions en utilisant la méthode ItemsSource. La méthode fonctionne bien avec un tableau à 1 dimensions mais pas comme je le souhaiterais avec un tableau à 2 dimensions, au lieu de m'afficher les valeurs de mon tableau il affiche : Tableau de Object[]
Pour info je fais mon tableau de la manière suivante:
[code:1]$aInfo=,(\"1\",\"2\",\"3\"«»)
$aInfo+=,(\"a\",\"b\",\"c\"«»)[/code:1]
Avez vous une idée? Est ce possible d'importer un tableau 2D en utilisant ItemsSource?
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 9 ans 11 mois #21669
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Importer tableau à 2D dans listview
Salut,
S'il t'affiche cela, c'est qu'il ne comprends pas ce que tu lui passes. Je ne connais pas ce composant, mais il faut peut-être lui passer les valeurs une par une.
Tu pourrais poster un bout de code ?
Arnaud
S'il t'affiche cela, c'est qu'il ne comprends pas ce que tu lui passes. Je ne connais pas ce composant, mais il faut peut-être lui passer les valeurs une par une.
Tu pourrais poster un bout de code ?
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Youbou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 9 ans 11 mois #21671
par Youbou
Réponse de Youbou sur le sujet Re:Importer tableau à 2D dans listview
Bonjour,
Merci pour ta réponse. En effet je dois avoir la possibilité de remplir ma listView case par case mais je souhaiterais trouver le moyen d'utiliser la méthode ItemsSource. Voici mon code
La partie XAML:
[code:1] <Window
xmlns=\"schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:«»x=\"schemas.microsoft.com/winfx/2006/xaml\"
Title=\"TDaRT\" Height=\"382.377\" Width=\"689.14\">
<Grid x:Name=\"GrillePrincipale\">
<Grid.RowDefinitions>
<RowDefinition Height=\"10*\"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Canvas x:Name=\"Canvas\">
<ListView x:Name=\"lvUserInfoAD\" Height=\"100\" Canvas.Left=\"27\" Canvas.Top=\"127\" Width=\"553\">
<ListView.View>
<GridView>
<GridViewColumn Header=\"First Name\" Width=\"100\"/>
<GridViewColumn Header=\"Last Name\" Width=\"100\"/>
<GridViewColumn Header=\"Name\" Width=\"100\"/>
</GridView>
</ListView.View>
</ListView>
</Canvas>
</Grid>
</Window>[/code:1]
La partie Powershell
[code:1]function LoadXAMLReader
{
param (
[string]$XAMLPath,
[string]$FormName
)
# chargement du fichier xmal en Form
[xml]$XAML = (get-content $XAMLPath -ReadCount 0) -replace \"x:Name\", \"Name\"
$reader=(New-Object System.Xml.XmlNodeReader $XAML)
$reader
try {
$Form=[Windows.Markup.XamlReader]::Load( $reader )
}
catch{
throw \"Impossible de charger Windows.Markup.XamlReader\"
}
#Creation de la variable globale accuillant la fenetre
Set-Variable -Name (\"global:\"+$FormName) -Value $Form
#Creation des variables pour les contrôles prefixés par le nom de la fenetre
$XAML.SelectNodes(\"//*[@Name]\"«») | %{Set-Variable -Name (\"global:${FormName}_\"+$_.Name) -Value $Form.FindName($_.Name)}
}
LoadXAMLReader -XAMLPath ((split-path $myinvocation.mycommand.path) + \"\form.xaml\"«») -FormName \"Main\"
$Main.add_Loaded(
{
param (
[System.Object]$sender,
[System.Windows.RoutedEventArgs]$e
)
$aInfo=,(\"1\",\"2\",\"3\"«»)
$aInfo+=,(\"a\",\"b\",\"c\"«»)
$Main_lvUserInfoAD.ItemsSource = $aInfo
}
)
$Main.ShowDialog()
[/code:1]
J'ai trouvé cet article
msdn.microsoft.com/fr-fr/library/ms750972(v=vs.110).aspx
Mes 1ers essais ne sont pas concluants mais je vais continuer à creuser cette piste
Merci pour ta réponse. En effet je dois avoir la possibilité de remplir ma listView case par case mais je souhaiterais trouver le moyen d'utiliser la méthode ItemsSource. Voici mon code
La partie XAML:
[code:1] <Window
xmlns=\"schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:«»x=\"schemas.microsoft.com/winfx/2006/xaml\"
Title=\"TDaRT\" Height=\"382.377\" Width=\"689.14\">
<Grid x:Name=\"GrillePrincipale\">
<Grid.RowDefinitions>
<RowDefinition Height=\"10*\"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Canvas x:Name=\"Canvas\">
<ListView x:Name=\"lvUserInfoAD\" Height=\"100\" Canvas.Left=\"27\" Canvas.Top=\"127\" Width=\"553\">
<ListView.View>
<GridView>
<GridViewColumn Header=\"First Name\" Width=\"100\"/>
<GridViewColumn Header=\"Last Name\" Width=\"100\"/>
<GridViewColumn Header=\"Name\" Width=\"100\"/>
</GridView>
</ListView.View>
</ListView>
</Canvas>
</Grid>
</Window>[/code:1]
La partie Powershell
[code:1]function LoadXAMLReader
{
param (
[string]$XAMLPath,
[string]$FormName
)
# chargement du fichier xmal en Form
[xml]$XAML = (get-content $XAMLPath -ReadCount 0) -replace \"x:Name\", \"Name\"
$reader=(New-Object System.Xml.XmlNodeReader $XAML)
$reader
try {
$Form=[Windows.Markup.XamlReader]::Load( $reader )
}
catch{
throw \"Impossible de charger Windows.Markup.XamlReader\"
}
#Creation de la variable globale accuillant la fenetre
Set-Variable -Name (\"global:\"+$FormName) -Value $Form
#Creation des variables pour les contrôles prefixés par le nom de la fenetre
$XAML.SelectNodes(\"//*[@Name]\"«») | %{Set-Variable -Name (\"global:${FormName}_\"+$_.Name) -Value $Form.FindName($_.Name)}
}
LoadXAMLReader -XAMLPath ((split-path $myinvocation.mycommand.path) + \"\form.xaml\"«») -FormName \"Main\"
$Main.add_Loaded(
{
param (
[System.Object]$sender,
[System.Windows.RoutedEventArgs]$e
)
$aInfo=,(\"1\",\"2\",\"3\"«»)
$aInfo+=,(\"a\",\"b\",\"c\"«»)
$Main_lvUserInfoAD.ItemsSource = $aInfo
}
)
$Main.ShowDialog()
[/code:1]
J'ai trouvé cet article
msdn.microsoft.com/fr-fr/library/ms750972(v=vs.110).aspx
Mes 1ers essais ne sont pas concluants mais je vais continuer à creuser cette piste
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.045 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Importer tableau à 2D dans listview