微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 从XAML引用嵌套枚举类型

我似乎从XAML引用公共嵌套的枚举类型.我有一个
namespace MyNamespace
{
  public class MyClass
  {
    public enum MyEnum
    {
       A,B,}
  }
}

我尝试在Xaml中引用MyEnum,如下所示:

xmlns:MyNamespace="clr-namespace:MyNamespace;assembly=MyApp"
....

{x:Type MyNamespace:MyClass:MyEnum}    // DOESN'T WORK

但VS抱怨它找不到公共类型MyEnum.我也尝试使用基于this post的答案之一的语法…

{x:Type MyNamespace:MyClass+MyEnum}    // DOESN'T WORK

但这也不行.

请注意x:静态使用语法:

{x:Static MyNamespace:MyClass+MyEnum.A}  // WORKS

如果我将MyEnum移出MyClass,我也可以参考.但是如果它是嵌套的…

那我还缺少什么?如何使用x:Type引用XAML中的嵌套枚举? (请注意,我不是要实例化任何东西,只是引用类型).

UPDATE

看起来这只是VS 2010设计师的错误.设计师抱怨类型MyNamespace:MyClass MyEnum未找到.但应用程序似乎运行并正确访问嵌套类型.我也试着用一个嵌套的类,它在运行时工作.

可能的开放bug:http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/

相关链接Design time error while writing Nested type in xaml

解决方法

MSDN说:

Your custom class must not be a nested class. nested classes and the
“dot” in their general CLR usage Syntax interfere with other WPF
and/or XAML features such as attached properties.

类似的问题在这里Creating an instance of a nested class in XAML

原文地址:https://www.jb51.cc/csharp/95753.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐