Silverlight 自定义控件的继承问题2

来源:互联网 发布:哆点校园mac版 编辑:程序博客网 时间:2024/05/21 08:52

继承用户写的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();  // 报异常

             }

    }

}

 

原创粉丝点击