继承用户写的UserControl, ChildWindow, Page时(有xaml的那种)时,,编译通过,但执行时,总会构造里的InitializeComponent();总是会报异常:
----------
AG_E_PARSER_BAD_PROPERTY_VALUE [Line: 24 Position: 87]
--- Inner Exception ---
给定关键字不在字典中。
----------
花了很久,再试出来, 原来是基类里的xaml中,只要含有事件,就会出这样的异常,解决办法有二种.
一.
把事件从xaml中删除,在构造里,通过代码的形式添加上去.
二.
把基类里的事件方法copy 一份到子类里
异常的例子:
一个silverlight的Page 基类, 叫 CommonPage, 代码如下
xaml:
<controls:ChildWindow x:Class="Demo.CommonForm" ...
<StackPanel x:Name="Save" MouseLeftButtonDown="Save_MouseLeftButtonDown" />
...
</controls:ChildWindow>
----------
一个CommonPage的子类 MyPage
xaml :
<MyPage:Mypage
x:Class="MyPage.Pages.MyPage"
xmlns:MyPage="clr-namespace:MyPage.Pages"
....
</MyPage:Mypage>
cs :
namespace MyPage
{
public partial class MyPage: CommonPage
{
public MyPage()
{
InitializeComponent(); // 报异常
}
}
}