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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的C#相关文章