我的表单上有一个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
,那么它会正常显示,但这在我的应用程序中变得笨拙。