我有一个表格,listbox
上面有一个。在这listbox
我想把PSObjects
有这些成员:姓名,位置,ID。
我创建了一个变量:$list
它包含所有PSObjects
并且我想绑定$list
到,$listbox
以便随时$list
修改$listbox
自动更新。
我可以绑定$list
到,$listbox
但它不能正确显示。我希望只有名称成员可见。问题是,无论我是否设置DisplayMember
属性,$list
仍然显示如下:
_______________________________________
|@{Name=Jim; Location=Somewhere; ID=0}|
|@{Name=Sam; Location=Somewhere; ID=1}|
|_____________________________________|
我希望它看起来像这样:
______
|Jim |
|Sam |
|____|
这是我正在使用的相关代码:
#####PSObject Initialization Code:##########
$obj1 = New-Object -TypeName PSObject -Property @{
'Name' = 'Jim';'Location' = 'Somewhere';'ID' = 0
};$obj2 = New-Object -TypeName PSObject -Property @{
'Name' = 'Sam';'Location' = 'Somewhere';'ID' = 1
};$list = $obj1,$obj2
#####Listbox Code:##########################
$listbox = New-Object System.Windows.Forms.ListBox
$listbox.Dock = 'Fill'
$listbox.SelectionMode = 'MultiExtended'
$listbox.DisplayMember = 'Name'
$listbox.DataSource = $list
#####Form Code##############################
[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)
[void] [System.Reflection.Assembly]::LoadWithPartialName(“System.Drawing”)
$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(500,500)
$form.Controls.Add($listbox); $form.ShowDialog()
有没有人知道为什么DisplayMember
我绑定列表时似乎忽略了该属性以及如何将显示转换为所需的格式?
注意:如果PSObjects
一次从列表中添加一个,则它会正确显示,但这在我的应用程序中会变得笨拙。