2012-02-09 12 views
1

既存のオブジェクト(静的フィールドから)をResourceDictionaryに挿入する方法は、直接インスタンス化することと同等です。 {StaticResource name}のリソースを参照すると、(ObjectDataProviderのような)いくつかのラッパーではなく、オブジェクトインスタンスを返す必要があります。 StaticExtensionは、すべてのケースでは動作しません。それだけで基本となるソースに変換可能であるStaticExtensionオブジェクトを挿入するようXAMLを使用してResourceDictionaryに既存のオブジェクトを挿入します

+0

C#またはXAML? –

+0

XAML(タイトルを参照)。 –

+0

XAMLを使って 'ResourceDictionary.Add(name、[static instance])'と同等の処理をしたいのですか?質問は不明です –

答えて

0

UPDATE

は残念ながら、それは見えますがこれらにパラメータ値を渡す場合には、例えば(すべてのコンテキストで動作しません。マークアップ拡張子)。

マークアップ構文{x:Static my:Foo.Bar}を使用している場合にのみ、実際の値が挿入されますが、これはコレクションが必要なときにプロパティに対してのみ可能です。


私がStaticExtensionではなく、直接Application.Resources内部の何らかの理由でそれを行うことができそうです。

<x:Static Member="my:MyEnum.One" x:Key="one" /> 

私は明示的な<ResourceDictionary>ですべてを包む場合はApplicationクラスでも、他のクラスとのリソースの内部で直接動作しません。

この

が故障した場合のコンパイル時にエラーがある:

エラー3プログラム「X:\ Y \ prog.exe」エントリポイント

に適した静的な「メイン」 メソッドが含まれていません

また、MainWindow.xamlの編集を開始した直後にVS2010がクラッシュしました。

+0

私は列挙型の値が "既存のオブジェクト"として認定されているとは言いませんが、もちろん静的なものを参照することはできますが、それは大きな制限です... –

+0

これは基本的に同じものです。私はこれを制限するものは見つけられません - それはまさに私が私の質問で求めているものです( "静的フィールドから")。 –

関連する問題