Powershell XAML数据网格

Powershell XAML数据网格,xaml,powershell,datagrid,Xaml,Powershell,Datagrid,我正在尝试用XAML创建一个表单。我面临的问题是,我无法从datagrid检索值。我想要的是在所有复选框中循环true 使用的代码是: XAML: 在谷歌搜索之后,我发现你可以通过$dgUsers.rows调用这些行,但是这个值不存在$dgUsers.Columns确实存在。。我可以使用$dgUsers.Items调用所有我的值。但这只会将我放入的数组返回给它。所以我没有复选框 有人有主意吗 我的powershell版本是: Major Minor Build Revision -----

我正在尝试用XAML创建一个表单。我面临的问题是,我无法从datagrid检索值。我想要的是在所有复选框中循环true

使用的代码是:

XAML:

在谷歌搜索之后,我发现你可以通过$dgUsers.rows调用这些行,但是这个值不存在$dgUsers.Columns确实存在。。我可以使用$dgUsers.Items调用所有我的值。但这只会将我放入的数组返回给它。所以我没有复选框

有人有主意吗

我的powershell版本是:

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      30319  34209 
您好, 何塞·文克

function Remove-GuiCompanyUser {

    begin {
        #Xaml Path
        [xml]$xaml = Get-Content "$Global:relPathXaml\RemoveCompanyUser.xaml"
        $reader=(New-Object System.Xml.XmlNodeReader $xaml) 
        # Try to read the XAML to form
        try { 
            $Form=[Windows.Markup.XamlReader]::Load( $reader )
        } catch {
            Write-Host "Something went wrong..."
        }

        #Setting al the fields to varialbe
        $cbCompanys = $Form.FindName("cbCompanys")
        $chkbMultiSelect = $Form.FindName("chkbMultiSelect")
        $dgUsers = $Form.FindName("dgUsers")
        $chkbBackupFiles = $Form.FindName("chkbBackupFiles")
        $chkbBackupMail = $Form.FindName("chkbBackupMail")
        $chkblocation = $Form.FindName("chkblocation")
        $btnSend = $Form.FindName("btnSend")
    }

    process {

        # Form setup
        $Form.Background = $Global:BackColor

        # for now disable the multiselect button
        $chkbMultiSelect.IsEnabled = $false

        # Add scripts to Company Combobox    
        foreach ($Company in ($Global:Companys | sort Name)) {
            [void] $cbCompanys.Items.Add($Company.Name)
        }

        # Add on checked to CheckBox Multiselect
        $chkbMultiSelect.Add_Checked({
            $dgUsers.SelectionMode = "Extended"
        })

        # Add on UnChecked to CheckBox Multiselect
        $chkbMultiSelect.Add_UnChecked({
            $dgUsers.SelectionMode = "Single"
        })

        # Add onchange to Company Combobox
        $cbCompanys_Add_SelectionChanged = {
            # Disable User Combobox
            $cbCompanys.IsEnabled = $False

            # Clear the Users Combobox
            $dgUsers.Clear()

            # Get all users of company
            $CompUsers = Get-CompanyUser -Company $cbCompanys.SelectedItem | select DisplayName, UserPrincipalName, SamAccountName | sort DisplayName

            # Add users to DataGrid
            $dgUsers.ItemsSource = $CompUsers

            # Allow sorting on all columns
            $dgUsers.Columns | ForEach-Object { 
                $_.CanUserSort = $True
                $_.IsReadOnly = $True
            }

            # Set Columns ReadOnly of not
            $dgUsers.Columns[0].IsReadOnly = $False

            # Enable User Combobox
            $cbCompanys.IsEnabled = $True
        }

        # Add selectionchanged function to Combobox
        $cbCompanys.Add_SelectionChanged($cbCompanys_Add_SelectionChanged)

        # Set action to button
        $btnSend.Add_Click({
            # Get selected items
            $SelCompany = $cbCompanys.SelectedItem

            # Checking if all fiels contain value
            if (!($SelCompany)) { 
                EmptyFormField -Field "Company" 
            } else { 
                for($i=0;$i -lt $dgUsers.items.count;$i++){

                   if($dgUsers.Rows[$i].Cells[0].Value -eq $true)
                   {
                     write-host "cell #$i is checked"
                   }
                }

            }

        })

        # Start form
        $Form.ShowDialog() | out-null

    }

    end {
    }

}
Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      30319  34209