我正在尝试在我的ObjectDataSource A La中使用嵌套类型 这个 文章。它似乎对我不起作用。

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

解决方案

这是VS 2008及以后的一个已知问题。 微软的官方立场是您不应该这样做:

尽管您正在编写的XAML显然是合法的,在运行时工作并在表达混合物中正确加载,但我们目前不认为从标记扩展程序中使用和访问嵌套类在应用程序构建中非常普遍。

其他提示

解决方案的一种方法 x:Type 对嵌套类型的引用是定义新的标记扩展名并使用它而不是 x:Type 标记扩展。我发布了有关其中一个的信息,包括 Type2Extension 班级,在 这个答案.

Type2Extension 不会产生设计师错误 TypeExtension 做。 也许这不会在VS 2010中发生。

唯一的警告是原始 TypeExtension 您使用 {x:Type 打字} 比有点强大 Type2Extension (例如,检查参数是否为null并抛出异常)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top