Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Fortlaufende Zahl in Schleife verwenden (WPF Textblock)

$
0
0

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


Viewing all articles
Browse latest Browse all 2314

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>