You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WPF的PowerShell项目中将数组输出正确显示在ListBox中

解决WPF ListBox正确显示AD用户SamAccountName的问题

方法1:添加属性值而非对象

你当前添加的是Select SamAccountName返回的自定义对象,ListBox默认会显示对象的类型信息。直接提取对象的SamAccountName属性值添加到ListBox即可:

function SearchDGUserClick
{
    param($sender, $e)

    $query = $DGUserSearchText.Text
    $UserSearch = Get-ADUser -Filter "Name -like '*$query*'" | Select SamAccountName | Sort -Property SamAccountName

    foreach ($item in $UserSearch) {
        # 直接添加SamAccountName属性值
        $DGMemberSearchListBox.Items.Add($item.SamAccountName)
    }
}

方法2:正确配置DisplayMember(推荐用于后续扩展)

如果后续需要保留对象的其他属性,可通过DisplayMember指定显示的属性名。注意要确保设置DisplayMember的ListBox变量名正确(你代码里用的是$DGMemberSearchListBox,而非之前提到的$ListBoxLeft),且在添加项前配置:

function SearchDGUserClick
{
    param($sender, $e)

    $query = $DGUserSearchText.Text
    $UserSearch = Get-ADUser -Filter "Name -like '*$query*'" | Select SamAccountName | Sort -Property SamAccountName

    # 先设置DisplayMember,确保变量名是你的目标ListBox
    $DGMemberSearchListBox.DisplayMember = "SamAccountName"
    # 清空原有项(可选,避免重复添加)
    $DGMemberSearchListBox.Items.Clear()
    foreach ($item in $UserSearch) {
        $DGMemberSearchListBox.Items.Add($item)
    }
}

方法3:用ExpandProperty直接获取字符串数组

通过Select-Object -ExpandProperty直接提取SamAccountName的字符串值,一次性添加到ListBox,效率更高:

function SearchDGUserClick
{
    param($sender, $e)

    $query = $DGUserSearchText.Text
    # 用ExpandProperty直接得到字符串数组
    $UserSearch = Get-ADUser -Filter "Name -like '*$query*'" | 
                  Sort -Property SamAccountName |
                  Select-Object -ExpandProperty SamAccountName

    $DGMemberSearchListBox.Items.Clear()
    # 一次性添加所有项
    $DGMemberSearchListBox.Items.AddRange($UserSearch)
}

关键说明

  • Select SamAccountName返回的是带有单一属性的自定义对象,而非纯字符串,这是ListBox显示对象格式的核心原因。
  • 若后续需要操作用户对象的其他属性(如DistinguishedName),优先用方法2,保留对象的完整信息;若仅需显示名称,方法1和3更简洁。

内容的提问来源于stack exchange,提问作者Kevlar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:08:25