自定义控件问题,都晕了
IDE:VS2008
解决方案结构:一个主项目(假设为A),一个silverlight类库(假设为B)
在A中引用B
B中通过XAML创建一个控件(C),和一个模板化控件(D)由一个CS文件和Generic.xaml文件构成
在A中使用B中定义的控件,如果是使用C,正常,如果使用D,错误!!!!!
在A中定义与D完全相同的模板化控件,使用正常!!!
求解,为什么。。。。。。。。
另外有个问题:假设我在A中创建N个模板化控件,那么就会在Generic.xaml添加N个模板代码,这样的话Generic.xaml会变得很大,很乱。有没有什么办法在创建一个模板化控件时,指定某个资源文件中的模板,而不是共用Generic.xaml?
[解决办法]
mark.up
...............
[解决办法]
你的模板资源信息是放在了Generic.xaml文件中,在Generic.xaml中,是否定义了一些事件的代码?或者交互代码?如果有,A调用就会报错,因为找不到相关事件触发信息。 但是如果你复制Generic.xaml的所有信息到A,自然会运行成功。
[解决办法]
不知道出了什么问题,我自己通过XAML写了好几个自定义控件,没有任何问题。
确定你的generic.xaml (区分大小写) 是放在Themes 文件夹下的。
能提供详细的错误和代码更好。
[解决办法]
和B是不是类库没有关系,我的底层级别的模板化控件都是放在最底层的类库中的,这是没有问题的。
我也经常和楼主一样遇上使用模板化控件时出错,包括从VS2010的工具箱中直接拖到设计界面后错误,并且多数是发现在 Generic.xaml 中搞错了,并且是编译时不会出错的那种。“在A中定义与D完全相同的模板化控件,使用正常!!!” 既然这样,很可能就是细心+耐心的问题了。
[解决办法]
根据你的描述
问题应该出现在
一个模板化控件(D)由一个CS文件和Generic.xaml文件构成
因为与B没关系,不管B是类库是自己开发还是Silverlight本身自己带。因为B都可以正常使用
在A中定义与D完全相同的模板化控件,使用正常!!!
这里,你只模仿了A,但是你没保证D是正确的。
最有可能就是你的D模板化控件。
顺便问下。模板化控件专业术语,还是楼主自己Make it up?