从ListView和SubGridView中获取值/文本- WPF Powershell



我试图创建一个应用程序,在我们的AD网站上获得网络打印机,并将它们显示为ListView和子GridView(因为它具有打印机数据列),用户必须选择要安装的打印机。我有一个问题,选择网格项目,并将其保存到一个变量来解析它连接网络打印机的功能。我正在使用Powershell runscape,因为我需要AD与windows打印机cmdlets集成。

这就是我现在所拥有的(只有列表视图部分和填充gridview的powershell:

<ListView Name="Impresoras" Margin="5" Grid.Row="0">
<ListView.View>
<GridView>
<GridViewColumn Header="Laser" DisplayMemberBinding="{Binding PrinterName}" />
<GridViewColumn Header="Driver" DisplayMemberBinding="{Binding DriverName}"/>
<GridViewColumn Header="Ubicacion" DisplayMemberBinding="{Binding Location}"/>
<GridViewColumn Header="IP" DisplayMemberBinding="{Binding PortName}"/>
<GridViewColumn Header="Servidor" DisplayMemberBinding="{Binding ServerName}"/>
</GridView>
</ListView.View>
</ListView>

这是网格填充的部分:

$tablaImpresoras = Get-ADObject -LDAPFilter "(objectCategory=printQueue)" -Properties PrinterName, DriverName, Location, PortName, ServerName | Select-Object -Property PrinterName, DriverName, Location, @{Name='PortName';Expression={$_.PortName}}, ServerName
$var_Impresoras.ItemsSource = $tablaImpresoras

我需要一种方法,从网格中选择一个项目,并将其保存到一个变量来运行连接打印机的功能。

提前感谢您的帮助!

您可以将$var_Impresoras.SelectedItems管道到ForEach-Object循环,并且只需从行中引用$_.IP或任何您需要的属性。当我上次做类似的事情时,我就是这么做的。如果您有一个函数,您将此信息提供给我个人设置该函数通过属性名称从管道获取信息,然后将$var_Impresoras.SelectedItems直接管道到函数中。比如:

Function Connect-Printer{
param(
[parameter(ValueFromPipelinebyPropertyName=$True)]$IP,
[parameter(ValueFromPipelinebyPropertyName=$True)]$Servidor,
[parameter(ValueFromPipelinebyPropertyName=$True)]$Driver
)
Some code to connect to the printer
}
$var_PrinterConnectButton.add_click({$var_Impresoras.SelectedItems | Connect-Printer})

请注意,函数中的代码是伪代码,但参数引用应该可以用作示例,最后一行也应该是可靠的参考材料。

谢谢!@ themad技术员我使用。selecteitems属性与您建议的foreach - object,它的工作就像一个魅力!

$cxnImpresora = $var_Impresoras.SelectedItems | Select-Object PrinterName, ServerName | ForEach-Object {"\$($_.ServerName)$($_.PrinterName)"}
$cxnImpresora = $cxnImpresora.ToString() 

这将返回我在列表中选择的打印机的ConnectionName,以便与Add-Printer cmdlet一起使用。

相关内容

  • 没有找到相关文章

最新更新