0

我想将一个包含多个属性(确切地说是三个)的 PSObject 添加到列表框中,但只显示其中一个属性。当我将整个 PSobject 添加到列表框时,它会显示所有属性,如下所示:

@{Property1="Something", Property2="Something Else", Property3="Something"}

假设 property1 是我希望用户看到的属性,那么列表框中的相同对象行应该如下所示:

Something

解决此问题的一种方法是将 PSObject 的特定属性添加到列表框中,但我希望每一行代表一个唯一的对象。因此,即使某些 PSObject 彼此共享它们的 property1 值,我仍然能够准确地知道在列表框中选择了哪些 PSObject。如果我只向列表框添加一个属性,我不知道这一点。

例如,可能有两个对象的 property1 值为“Something”,但其中一个将 property2 设置为“Something Else”,另一个将其设置为“A Third Something”。列表框应该以相同的方式显示两个对象,即:

Something
Something

但是列表框应该知道所选项目是否将 property2 设置为“其他东西”或“第三东西”,即使用户无法分辨。

4

1 回答 1

0

尝试将 ToString() 脚本方法添加到输出相关属性的 PSObject。

$p=[pscustomobject]@{a=1;b='hello'}
$p | add-member -membertype ScriptMethod -name ToString -value {$this.b} -force

添加项目后,列表框将使用其 ToString() 方法来选择要显示的内容。

于 2018-02-12T15:42:50.160 回答