26

vs2008からvs2010に切り替えたばかりで、プロジェクトは問題なくコンパイルおよび実行されます。ただし、xamlデザイナーにはいくつかのエラーがあります。これは、誰かが解決策を提供できることを期待するエラーの1つです。

カスタムMarkupExtensionがあり、それをxamlで使用して特定のリソースを取得します。このようなもの:

<Button Style="{l:GetResource Key=MyButtonStyle}" />

StaticResourceまたはDynamicResourceを使用できることはわかっています。ただし、カスタムマークアップ拡張を使用する理由があります。

設計者からのエラーメッセージは次のとおりです。

'GetResourceExtension'はSetter.Valueには無効です。サポートされているMarkupExtensionタイプはDynamicResourceExtension、および BindingBaseまたは派生タイプのみです。

私の質問は、コードはvs2008で正常に動作し、2010でも正常に動作するということですが、2010デザイナーを機能させるにはどうすればよいですか?

4

1 に答える 1

1

いくつかのマークアップ拡張機能を作成しましたが、コードは実行されますが、常に発生するような Xaml エラーが発生します。有効なコードがあると仮定すると、エラーを取り除く唯一の方法は、再構築オプションを使用してアプリを実行することでした。

もちろん、問題は、再度変更したり移動したりすると、エラーが戻ってくるように見えることです。私の仮定は、静的コンパイルはマークアップが何をしていても完全に解決できず、これに基づいてエラーをスローしているということです。

私の場合、メソッドバインダーを作成していましたが、実行時までオブジェクトが null だったため、 new Object(); を使用する必要がありました。実行時に交換します。ハックですが、コンパイルエラーが私を狂わせていました。

xaml パーサーは 2012 年の方が優れているようですが、それでも奇妙なエラーが発生します。

于 2013-02-18T21:39:04.720 に答える