我有一个通用的基页类,我想用我的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是否支持这一信息的良好信息。任何帮助都将不胜感激。谢谢!
答案 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
您可能会看到此网页