加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:23:14 所属栏目:百科 来源:网络整理
导读:我似乎从XAML引用公共嵌套的枚举类型.我有一个班 namespace MyNamespace{ public class MyClass { public enum MyEnum { A,B,} }} 我尝试在Xaml中引用MyEnum,如下所示: xmlns:MyNamespace="clr-namespace:MyNamespace;assembly=MyApp"....{x:Type MyNamespa
我似乎从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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读