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/