VS 2012 Express WPF プロジェクト (C# コード ビハインド) に取り組んでいますが、「プロパティ式でループが検出されました」というエラーが表示されます。先に進む前に、エラーが発生する理由がわかりました。エラー リストに表示され、青で下線が引かれているにもかかわらず、それについて何をすべきか、または処理する必要があるかどうかさえわかりません。プログラムはコンパイルされ、問題なく実行されます。もちろんこれをグーグルで検索しましたが、結果はさまざまです。私の質問は 2 部構成ですが、まず、概要を以下に示します。
問題のコード:
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<!-- setter properties -->
</Style>
ご覧のとおり、問題の原因となっている Button を参照する Button のスタイルです。私が読んだ最初の回避策は、次のようにコードを分離することでした。
<Style x:Key="ButtonStyleToApply" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<!-- setter properties -->
</Style>
<!-- and in another style dictionary, -->
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ButtonStyleToApply}"/>
...そして、2 つのスタイル セットが異なる辞書に入れられます。明らかに、これも何の役にも立たなかった - VS はまだ私が何をしていたかを嗅ぎつけたが、それでもコンパイルして正常に動作した。ここで、さらに別の回避策を示します。
「Visual Studio の XAML デザイナーにいくつかのアーキテクチャ上の変更があり、このシナリオが後退しました。今後、このエクスペリエンスを改善するために取り組んでいますが、現時点では、Application オブジェクト (App. xaml) ではなく、ローカル ドキュメント (MainPage.xaml) でそれらを定義します」
これは、テクニカル サポートクエリに投稿されたものです。(Connect.Microsoft.Com)
しかし、私はすべての人からの実践的な経験を信頼しています. 私の仲間のコーダーは私に何を教えてくれますか? 私の質問は二部構成です。1. プログラムがコンパイルされている場合、回避策を実行する必要がありますか? そして2.私が行ってもいいなら、VSにそれを無視するように指示する方法はありますか? 私の側またはVSでそれを無視することは、おそらく「悪い習慣」と見なされることを知っていますが、それを超えて...?