ObjectDataProvider 标记中的引用嵌套类型

发布于 2024-08-02 09:30:45 字数 287 浏览 5 评论 0原文

我正在尝试在我的 ObjectDataSource 中使用嵌套类型,如 这篇 文章。这似乎对我不起作用。

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

I'm trying to use a nested type in my ObjectDataSource a la this article. It doesn't seem to be working for me.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心房敞 2024-08-09 09:30:45

这是 VS 2008 及更高版本中的一个已知问题。 Microsoft 的官方立场是您不应该这样做

虽然您正在编写的 XAML 显然是合法的,可以在运行时运行,并且可以在 Expression Blend 中正确加载,但我们目前认为使用和访问标记扩展中的嵌套类在应用程序构建中并不常见。

This is a known issue in VS 2008 and beyond. Microsoft's official position is that you shouldn't be doing this:

Whilst the XAML you are writing is clearly legal, works at runtime, and loads in correctly in Expression Blend, we do not currently believe that use of and access to nested classes from Markup Extensions is very common in application building.

染年凉城似染瑾 2024-08-09 09:30:45

解决 x:Type 对嵌套类型引用的一种方法是定义一个新的标记扩展并使用它来代替 x:Type 标记扩展。我在 这个答案

Type2Extension 不会像 TypeExtension 那样产生设计者错误。 也许这不会在 VS 2010 中发生。

唯一需要注意的是,与 {x:Type typename< 一起使用的原始 TypeExtension /em>}Type2Extension 更健壮(例如,检查参数是否为空并抛出异常)。

One way to work around x:Type references to nested types is to define a new markup extension and use it instead of the x:Type markup extension. I posted information about one such, including source for the Type2Extension class, in this answer.

The Type2Extension will not produce designer errors like the TypeExtension does. Perhaps this will not occur in VS 2010.

The only caveat is that the original TypeExtension you use with {x:Type typename} is a little more robust than Type2Extension (e.g., checking if arguments are null and throwing exceptions).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文