12

XAML から public の入れ子になった列挙型を参照できないようです。クラスがあります

namespace MyNamespace
{
  public class MyClass
  {
    public enum MyEnum
    {
       A,
       B,
    }
  }
}

そしてMyEnum、次のように Xaml で参照しようとします。

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

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

しかし、VSは public type が見つからないと不平を言いますMyEnumまた、この投稿+への回答の1つに基づいた構文を使用してみました...

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

しかし、それもうまくいきません。

次の構文で機能することに注意しx:Static てください。+

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

そして、私が引っ越しMyEnumた場合、MyClass私もそれを参照できます。しかし、ネストされている場合はそうではありません...

それで、私は何が欠けていますか?を使用して XAML からネストされた列挙型を参照するにはどうすればよいx:Typeですか? (そして、私は何かをインスタンス化しようとしているのではなく、単に型を参照していることに注意してください)。

アップデート

これは VS 2010 デザイナーの単なるバグのようです。デザイナーはそれを不平を言いType MyNamespace:MyClass+MyEnum was not foundます。ただし、アプリケーションは実行され、ネストされた型に適切にアクセスしているように見えます。ネストされたクラスでもこれを試しましたが、実行時に機能します。

未解決の可能性のあるバグ: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/

関連スレッド: xaml でネストされた型を書き込んでいるときに設計時エラーが発生しました

4

1 に答える 1