Silverlight 4支持x:TypeArguments

时间:2010-11-24 18:44:23

标签: silverlight generics xaml silverlight-4.0

我有一个通用的基页类,我想用我的Silverlight页面。唯一的问题是x:TypeArguments属性似乎不起作用。

该属性仅应用于XAML页面的根元素,而不是其他任何地方。

我不断从编译器获取的错误消息是:"Using the generic type 'Base.BasePage<T>' requires 1 type arguments"。此错误始终指向生成的Page.g.i.cs文件。

以下是我的根元素的示例:

<Base:BasePage x:TypeArguments="ViewModels:MyViewModel">

我很难找到关于Silverlight 4是否支持这一信息的良好信息。任何帮助都将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:3)

不幸的是,Silverlight尚不支持它。如果要在XAML中包含类,则它不能是通用的。您仍然可以使用泛型并从代码中将其添加到Visual Tree中,但不能直接在XAML中添加。

答案 1 :(得分:0)

此解决方法仅适用于WPF应用程序。目前,Silverlight不支持派生控件的XAML根标记中所需的x:TypeArguments属性。

如果必须具有派生自通用基类的Silverlight控件,则必须执行一些额外的工作。基本上你需要在中间有一个额外的类,以便UserControl派生自非泛型类

基类:公共类GenericBase:UserControl

中产阶级:公共类MiddleStringControl:GenericBase

UserControl:public class UserControlWithGenericBase:MiddleStringControl

您可能会看到此网页

deriving-from-a-generic-base-class