Moin Kollegen,
ich versuche eine fortlaufende Zahl an einer bestimmten Stellen einzufügen, leider versteht PS nicht was ich will. Grundätzlich will ich wärend der Laufzeit der Schleife, die Werte den TextBlöcken zuweisen. Mir gehts um folgende Stelle:
$Array = '22','44','66' $i = 0 foreach ($Num in $Array){ $i++ #fortlaufende Zahl, die ... $window.c($i).Text = $Num #hier verwendet werden soll # sodass das hier herauskommt # $window.c1.Text = $Num # $window.c2.Text = $Num # $window.c3.Text = $Num }
Variable $i zählt hoch und soll in $window.c.Text direkt hinter dem c eingefügt werden, sodass nur der Zahlenwert interpretiert wird.
Hier der komplette Code:
function Convert-XAMLtoWindow { param ( [Parameter(Mandatory=$true)] [string] $XAML, [string[]] $NamedElements, [switch] $PassThru ) Add-Type -AssemblyName PresentationFramework $reader = [System.XML.XMLReader]::Create([System.IO.StringReader]$XAML) $result = [System.Windows.Markup.XAMLReader]::Load($reader) foreach($Name in $NamedElements) { $result | Add-Member NoteProperty -Name $Name -Value $result.FindName($Name) -Force } if ($PassThru) { $result } else { $result.ShowDialog() } } $xaml = @' <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" MinHeight="350" MaxHeight="350" MinWidth="350" MaxWidth="350" SizeToContent="Height" Title="WPF TEST" Topmost="True"><Grid Background="#FFE5F0D3"><Button Name="b1" Content="Button" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75"/><TextBlock HorizontalAlignment="Left" Margin="135,10,0,0" TextWrapping="Wrap" Text="CPU" VerticalAlignment="Top"/><TextBlock HorizontalAlignment="Left" Margin="10,38,0,0" TextWrapping="Wrap" Text="Host1" VerticalAlignment="Top"/><TextBlock Name="c1" HorizontalAlignment="Left" Margin="135,38,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top"/><TextBlock HorizontalAlignment="Left" Margin="10,59,0,0" TextWrapping="Wrap" Text="Host2" VerticalAlignment="Top"/><TextBlock Name="c2" HorizontalAlignment="Left" Margin="135,59,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top"/><TextBlock HorizontalAlignment="Left" Margin="10,80,0,0" TextWrapping="Wrap" Text="Host3" VerticalAlignment="Top"/><TextBlock Name="c3" HorizontalAlignment="Left" Margin="135,80,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top"/></Grid></Window> '@ $window = Convert-XAMLtoWindow -XAML $xaml -NamedElements 'b1', 'c1', 'c2', 'c3' -PassThru $window.b1.add_Click( { [System.Object]$sender = $args[0] [System.Windows.RoutedEventArgs]$e = $args[1] $Array = '22','44','66' $i = 0 foreach ($Num in $Array){ $i++ #fortlaufende Zahl, die ... $window.c($i).Text = $Num #hier verwendet werden soll # sodass das hier herauskommt # $window.c1.Text = $Num # $window.c2.Text = $Num # $window.c3.Text = $Num } } ) $window.ShowDialog() | Out-Null
Vielen Dank