Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Out-Gridview removes underscores

Consider the following code:

$a = @()

$b = "" |select ho_ho,ha_ha
$b.ho_ho = "1"
$b.ha_ha = "2"
$a+=$b

$b = "" |select ho_ho,ha_ha
$b.ho_ho = "3"
$b.ha_ha = "4"
$a+=$b

$a | Format-Table -AutoSize
$a | Out-GridView

Using Format-Table, the underscores on the column headers are retained.

ho_ho ha_ha
----- -----
1     2
3     4

However, when using Out-Gridview, the underscores are automatically removed?

Underscores removed

Does anyone know how to avoid this?

like image 618
Bjorn Mistiaen Avatar asked Oct 24 '25 14:10

Bjorn Mistiaen


1 Answers

This seems to be related to the fact in WPF that the first underscore in a text prefixes the accelerator character for the control.

See this blog post for details:

WPF uses an underscore character instead of the ampersand character (like with WinForms) to prefix an access (a.k.a. accelerator or mnemonic) key in the text of its elements like Label and Button.

You can escape the underscore by using two underscores.

So this code would display Ok in the gridview but not in the Format-Table output

$a = @()

$b = "" |select ho__ho,ha__ha
$b.ho__ho = "1"
$b.ha__ha = "2"
$a+=$b

$b = "" |select ho__ho,ha__ha
$b.ho__ho = "3"
$b.ha__ha = "4"
$a+=$b

$a | Format-Table -AutoSize
$a | Out-GridView

Please note that the escaping is only necessary on the first underscore in the string, not the others.

I think this may be regarded as a bug (since it's not actually adding any key shortcuts either), but I couldn't find any reports on http://connect.microsoft.com

like image 174
Tom V Avatar answered Oct 26 '25 05:10

Tom V



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!