ObjectDataProvider标记中的引用嵌套类型

时间:2009-08-18 19:18:49

标签: wpf objectdataprovider

我正在尝试在我的ObjectDataSource和la this文章中使用嵌套类型。它似乎对我不起作用。

<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />

2 个答案:

答案 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并抛出异常。)