我正在一個PowerShell WPF GUI工具,我堅持綁定管道輸出到列表視圖...我已經經歷了一些博客/文章,但無法找到方法來傳遞管道輸出到列表視圖列。綁定WPF列表視圖列與PowerShell管道輸出
我從XAML和PowerShell附代碼... XAML代碼:
<ListView Name="listdisk" HorizontalAlignment="Left" Height="415" Margin="20,67,0,0" VerticalAlignment="Top" Width="830" Grid.ColumnSpan="3" ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListView.View>
<GridView>
<GridViewColumn Header="Server Name" DisplayMemberBinding ="{Binding 'ServerName'}" Width="200"/>
<GridViewColumn Header="C Disk Size(GB)" DisplayMemberBinding ="{Binding 'Csize'}" Width="105"/>
<GridViewColumn Header="C Free Space(GB)" DisplayMemberBinding ="{Binding 'Cfree'}" Width="105"/>
<GridViewColumn Header="C % Free Space" DisplayMemberBinding ="{Binding 'CPercentfree'}" Width="100"/>
<GridViewColumn Header="D Disk Size(GB)" DisplayMemberBinding ="{Binding 'Dsize'}" Width="105"/>
<GridViewColumn Header="D Free Space(GB)" DisplayMemberBinding ="{Binding 'Dfree'}" Width="100"/>
<GridViewColumn Header="D % Free Space" DisplayMemberBinding ="{Binding 'DPercentfree'}" Width="100"/>
</GridView>
</ListView.View>
</ListView>
Powershell的功能 -
Function Get-diskinfo{
[email protected]()
$Getservers = Get-Content $dsksvr
foreach ($CompName in $Getservers)
{
$cdrivespace= Get-WMIObject Win32_logicaldisk -ComputerName $CompName | ?{$_.DeviceID -eq 'C:'} | Select @{Name=‘cTotalSize’;Expression={[int]($_.Size/1gb)}},`
@{Name=‘cFreeSpace’;Expression={[int]($_.FreeSpace/1gb)}}, @{Name=‘cPercentFree’;Expression={[math]::Round($_.FreeSpace/$_.Size,2)*100}}
$ddrivespace= Get-WMIObject Win32_logicaldisk -ComputerName $CompName | ?{$_.DeviceID -eq 'D:'} | Select @{Name=‘dTotalSize’;Expression={[int]($_.Size/1gb)}},`
@{Name=‘dFreeSpace’;Expression={[int]($_.FreeSpace/1gb)}}, @{Name=‘dPercentFree’;Expression={[math]::Round($_.FreeSpace/$_.Size,2)*100}}
$diskinfo = New-Object psobject
Add-Member -InputObject $diskinfo -membertype noteproperty -name "ServerName" -value $CompName
Add-Member -InputObject $diskinfo -membertype noteproperty -name "cSize" -value $cdrivespace.cTotalSize
Add-Member -InputObject $diskinfo -membertype noteproperty -name "cFree" -value $cdrivespace.cFreeSpace
Add-Member -InputObject $diskinfo -membertype noteproperty -name "cPercentfree" -value $cdrivespace.cPercentFree
Add-Member -InputObject $diskinfo -membertype noteproperty -name "DSize" -value $ddrivespace.dTotalSize
Add-Member -InputObject $diskinfo -membertype noteproperty -name "DFree" -value $ddrivespace.dFreeSpace
Add-Member -InputObject $diskinfo -membertype noteproperty -name "DPercentfree" -value $ddrivespace.dPercentFree
$dsk +=$diskinfo
} Return, $dsk
}
這就是我想我不這樣做正確的部分...有人可以指導我這個請.. ..?由於
$btndiskinfo.Add_Click({
get-diskinfo | % {$listdisk.items.add([pscustomobject]($_))}
})