又一个奇怪的WPF错误:WPF自定义控件XAML null错误
我在简单的XAML页面中有一个自定义控件。该项目建设和运行完美,没有错误。
这里的XAML:
<Window x:Class="Grapher2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:graph="clr-namespace:Grapher2"
Title="Grapher" Width="800" Height="600">
<StackPanel Name="container" Width="700" Height="500">
<graph:GraphCanvas x:Name="graphCanvas" Width="700" Height="500" Background="#ddd" />
</StackPanel>
但是当我尝试在XAML设计器窗口来查看XAML页面,我得到的消息:
"Problem Loading--The document contains errors that must be fixed..."
当我打的“重新加载设计器”链接,在错误列表中弹出一条错误消息:
"Object reference not set to an instance of an object"
以“graph:GraphCanvas ...”开头的行加下划线。
我原本是发展我们的开发服务器上,并在那里,一切都是一样的,除了错误是:
"Request for the permission of type 'System.Security.Permissions.SecurityPermission (...blah blah... failed.)"
再次,一切完美,但我不能查看的页面XAML设计师窗口,这使我无法开发应用程序的其余部分。
我试过清理,建筑,重建以及这些命令的所有命令组合,但都没有成功。
编辑:
请记住这是我的第一个自定义的控制,我可以做一些可怕的,可怕的错误。就像我说的那样,该应用程序编译和运行非常漂亮,所以我有点神秘。
EDIT#2:
我衍生画布不是局部类。根据我对InitializeComponent
工作原理的了解(What does InitializeComponent() do, and how does it work in WPF?),没有自动生成的部分类包含链接到我的控件的InitializeComponent
。同样,除非打破XAML设计视图,否则该控件完全没有它。
我已经完成了你之前描述的任何事情(通常是所有“真实”研究都没有发生的最后一次努力)。在阅读你的文章后,我在这里试了一下,发现我在Initialized事件的控件窗口中添加了一个KeyUp事件监听器。显然,设计者还运行初始化事件 - 父窗口为空。 谢谢! – Klay 2009-10-05 13:36:51