Visual Studio 2010 で WPF アプリケーションを作成しています。
アプリケーション ウィンドウがデザイナーに読み込まれるときに、接続文字列またはアプリ設定を取得しようとすると、常に null が返されます。たとえば、値が "bar" の "foo" というアプリ設定がある場合、デザイナーでConnectionManager.AppSettings["foo"]
は null が返されますが、実行時には "bar" が返されます。ウィンドウがデザイナーで例外をスローしているため、これは私を驚かせています。
これは Visual Studio の既知のバグ (または「機能」) ですか? 他の場所でそれについての言及を見つけることができませんでした。
以前にこれに遭遇したことがある場合、利用可能な一般的な回避策はありますか?
フィルのリクエストによる編集:
これは、次のように、ウィンドウにラベルを配置することで簡単に複製できます。
<Label Content="{Binding TheText}" HorizontalAlignment="Left" />
ビューモデルで、TheText 要素をアプリケーション設定の値「foo」に設定します。
TheText = ConfigurationManager.AppSettings["foo"];
app.config には、次の appSettings セクションが含まれています。
<appSettings>
<add key="foo" value="bar"/>
</appSettings>
編集:設定APIを使用することがこれを回避する唯一の方法であるように思われるため、Philのソリューションを正しいものとしてマークしました。残念ながら、すべての場合に有効な回避策ではありません。これについて MS Connect で問題を提起しました: https://connect.microsoft.com/VisualStudio/feedback/details/738316/system-configuration-configurationmanager-does-not-work-in-wpf-designer