1

インポートしようとしている CSV プロパティがあり、そのリストをドロップダウン ボックスで使用します。ドロップダウンには文字列が必要ですが、リストを文字列に変換するために行ったことはすべて失敗しました。ここに私が持っているものがあります:

    $roles = (Import-CSV "\\Networklocation\somefile.csv" | Select ProjectRoleProfile | Where { $_.ProjectRoleProfile -ne "" }).ProjectRoleProfile # Selecting my attribute and cleaning out the empty cells
foreach ($role in $roles)
{
    $role = [string]$role
    Write-Host $role
    Update-ComboBox $role #Function that updates my drop down box. Functions as long as I get strings. 
}

エラー:

    ERROR: Update-ComboBox : Cannot process argument transformation on parameter 'ComboBox'. Cannot convert the "MYData" value of type "System.String" to type
ERROR: "System.Windows.Forms.ComboBox".
MyFile.ps1 (97, 18): ERROR: At Line: 97 char: 18
ERROR: +         Update-ComboBox $role
ERROR: +                         ~~~~~
ERROR:     + CategoryInfo          : InvalidData: (:) [Update-ComboBox], ParameterBindingArgumentTransformationException
ERROR:     + FullyQualifiedErrorId : ParameterArgumentTransformationError,Update-ComboBox
ERROR:

私の推測では、小さな何かが欠けていると思います。どんな助けでも大歓迎です。

編集:

Update-ComboBox のコード

function Update-ComboBox
{
<#
    .SYNOPSIS
        This functions helps you load items into a ComboBox.

    .DESCRIPTION
        Use this function to dynamically load items into the ComboBox control.

    .PARAMETER ComboBox
        The ComboBox control you want to add items to.

    .PARAMETER Items
        The object or objects you wish to load into the ComboBox's Items collection.

    .PARAMETER DisplayMember
        Indicates the property to display for the items in this control.

    .PARAMETER Append
        Adds the item(s) to the ComboBox without clearing the Items collection.

    .EXAMPLE
        Update-ComboBox $combobox1 "Red", "White", "Blue"

    .EXAMPLE
        Update-ComboBox $combobox1 "Red" -Append
        Update-ComboBox $combobox1 "White" -Append
        Update-ComboBox $combobox1 "Blue" -Append

    .EXAMPLE
        Update-ComboBox $combobox1 (Get-Process) "ProcessName"

    .NOTES
        Additional information about the function.
#>

    param
    (
        [Parameter(Mandatory = $true)]
        [ValidateNotNull()]
        [System.Windows.Forms.ComboBox]
        $ComboBox,
        [Parameter(Mandatory = $true)]
        [ValidateNotNull()]
        $Items,
        [Parameter(Mandatory = $false)]
        [string]
        $DisplayMember,
        [switch]
        $Append
    )

    if (-not $Append)
    {
        $ComboBox.Items.Clear()
    }

    if ($Items -is [Object[]])
    {
        $ComboBox.Items.AddRange($Items)
    }
    elseif ($Items -is [System.Collections.IEnumerable])
    {
        $ComboBox.BeginUpdate()
        foreach ($obj in $Items)
        {
            $ComboBox.Items.Add($obj)
        }
        $ComboBox.EndUpdate()
    }
    else
    {
        $ComboBox.Items.Add($Items)
    }

    $ComboBox.DisplayMember = $DisplayMember

データのスクリーンショット: 一部の機密情報に対してすべてを表示することはできませんが、ProjectRoleProfile 列を取得しようとしています ここに画像の説明を入力

4

1 に答える 1