【发布时间】:2015-07-13 01:28:24
【问题描述】:
我正在尝试将数据网格放入 WPF。在 Powershell 中很简单。但是当我在 Powershell 2.0 中运行代码时,它找不到给我错误。
示例代码:
Add-Type -AssemblyName PresentationFramework
$xaml = [xml] @"
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="My window" Height="300" Width="300">
<DockPanel>
<Button x:Name="okButton" Content="OK" DockPanel.Dock="Bottom" />
<DataGrid x:Name="DataGrid" DockPanel.Dock="Top"/>
</DockPanel>
</Window>
"@
$reader = New-Object System.Xml.XmlNodeReader $xaml
$form = [Windows.Markup.XamlReader]::Load($reader)
$okButton = $form.FindName("okButton")
$okButton.add_Click({ $form.Close() })
$form.WindowStartupLocation = "CenterScreen"
$form.ShowDialog();
如果删除此行,一切正常:
<DataGrid x:Name="DataGrid" DockPanel.Dock="Top"/>
有人有什么建议吗?
我在 Powershell 2.0 中遇到的错误:
使用“1”个参数调用“Load”的异常:“标签‘DataGrid’ XML 命名空间 'http://schemas.microsoft.com/winfx 中不存在 /2006/xaml/演示文稿”。行 '0' 位置 '0'。”在行:15 字符:42 + $form = [Windows.Markup.XamlReader]::Load
【问题讨论】:
-
您收到了哪些具体错误?我想到了 2 个可能的选项:不同的 .net 版本,或需要额外的参考加载,或两者兼而有之。
-
查看有错误的更新问题..
-
在 PS 4.0、.NET 4.5 中运行良好。你有什么版本的 .NET?
-
我知道它确实如此.. 问题是为什么它在 PS 2.0 中不起作用.. 我有一个只有 PS 2.0 的环境.. :/
-
不必太激动 ;) 我想说的是,该错误似乎特定于 PowerShell 版本 2。我还可以确认 .NET 版本不适用。
标签: wpf xaml powershell datagrid