PowerShellでウインドウを開いて、DataGridでDataTable一覧を表示する方法

System.Windows.Formsを使って表示してるサンプルは http://blog.livedoor.jp/morituri/archives/54188440.html にあったけど、WPFを使ってXAMLで画面レイアウトを組み立ててDataTableを表示しているサンプルは見つからなかったので書いておく。
上URLのものと比べると簡潔さが際立つと思う。

Add-Type -AssemblyName PresentationFramework

# XAMLからウインドウ作成
[xml]$xaml = @'
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="DataGrid表示サンプル">
  <StackPanel>
    <DataGrid Name="grdData" CanUserAddRows="False" />
  </StackPanel>
  </Window>
'@
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$window = [Windows.Markup.XamlReader]::Load($reader)

# DataTable作成
$dt = New-Object System.Data.DataTable
$dt.Columns.Add("名前", [string])
$dt.Columns.Add("ほげ", [string])
$dt.Columns.Add("ふが", [string])
$dt.Rows.Add(@("name1", "hoge1", "fuga1"))
$dt.Rows.Add(@("name2", "hoge2", "fuga2"))

# データバインド
$grid = $window.FindName("grdData")
$grid.ItemsSource = $dt.DefaultView

# 表示
$window.ShowDialog()