我正在尝试在我的ObjectDataSource和la this文章中使用嵌套类型。它似乎对我不起作用。
<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
答案 0 :(得分:2)
这是VS 2008及更高版本中的已知问题。 Microsoft's official position is that you shouldn't be doing this:
虽然您编写的XAML显然是合法的,在运行时工作,并且在Expression Blend中正确加载,但我们目前并不认为在应用程序构建中使用和访问来自Markup Extensions的嵌套类非常常见。
答案 1 :(得分:1)
解决嵌套类型x:Type
引用的一种方法是定义新的标记扩展并使用它而不是x:Type
标记扩展。我在this answer中发布了有关此类内容的信息,包括Type2Extension
类的来源。
Type2Extension
不会产生TypeExtension
之类的设计师错误。 也许这不会发生在VS 2010中。
唯一需要注意的是,您使用TypeExtension
typename {x:Type
的原始}
比Type2Extension
更强大(例如,检查参数是否为null并抛出异常。)