Open windowswithoutborders opened 6 months ago
Thanks for this report. I'll look into it asap.
Thank you, it's much appreciated. If it's of any assistance with debugging, Out-GridView
displays the object based on its type data formatting as expected--that is to say, with only the default properties (property A and property B in the example) being displayed.
> Out-GridView -InputObject $myObject -OutputMode Multiple | ForEach-Object ({$_.C})
c
I just hit this problem too
I'm doing this
$Visible = [System.Management.Automation.PSPropertySet]::new(
'DefaultDisplayPropertySet',
$PropertiesToDisplay
)
foreach ($Element in $EventsToDisplay) {
$Element | Add-Member -MemberType 'MemberSet' -Name 'PSStandardMembers' -Value $Visible
}
And Out-ConsoleGridView
doesn't respect that and still shows all properties.
Out-GridView
built-in cmdlet doesn't have this problem.
Using PowerShell 7.4.1
and tried on 7.5.0
beta
I've not had a chance to look at this. Sorry about that. Will do in the next few days.
Prerequisites
Steps to reproduce
When working with a PSCustomObject that has type data for the default display of its properties, OCGV seemingly ignores it.
For the following:
The expected display inside OCGV would be the
DefaultDisplayPropertySet
(A, B), but instead it is the object in its entirety. I would have to guess that is because it's formatting based off of internal formatting rules for PSCustomObject and completely disregarding the type data associated with the customPSTypeName
in the object (which is why something likeGet-ChildItem
works fine with OCGV).The actual behavior is an inconvenience when working with a custom object that has a set of properties, some of which you would like to display, and some you would like to hide but keep inside the object for later processing in the pipeline. This means that
Select-Object
would not work in this instance, and messing with the*-FormatData
cmdlets would be overkill.If type data cannot be accommodated, maybe OCGV could have a parameter that sets the
-VisibleProperties
of an object, thus allowing you to neatly display just what you want inside OCGV, while still having access to the full object in the pipeline. For now, I just ignore the excess information when I use OCGV in my scripts.Expected behavior
Actual behavior
Error details
No response
Environment data
Version
7.6.0
Visuals
No response