Listbox绑定到PSObject列表DisplayMember不起作用

时间:2018-01-03 19:50:18

标签: winforms powershell data-binding listbox psobject

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

0 个答案:

没有答案
相关问题