我正在 Visual Studio 2010 中开发 WPF 应用程序。
当应用程序窗口加载到设计器中时,尝试检索连接字符串或应用程序设置总是返回 null。例如,如果我有一个名为“foo”的应用程序设置,其值为“bar”,在设计器中,ConnectionManager.AppSettings["foo"]
将返回 null,而在运行时,它将返回“bar”。这让我有些惊愕,因为我的窗口现在在设计器中抛出异常。
这是 Visual Studio 中的已知错误(或“功能”)吗?我无法在其他地方找到提及它。
如果你们中的任何人以前遇到过这种情况,是否有可用的通用解决方法?
编辑,根据菲尔的要求:
这可以通过在窗口中放置标签来轻松复制,à la:
<Label Content="{Binding TheText}" HorizontalAlignment="Left" />
在视图模型中,将 TheText 元素设置为应用程序设置“foo”的值:
TheText = ConfigurationManager.AppSettings["foo"];
app.config 包含以下 appSettings 部分:
<appSettings>
<add key="foo" value="bar"/>
</appSettings>
编辑:我已将 Phil 的解决方案标记为正确的解决方案,因为似乎使用设置 API 是解决此问题的唯一方法。可悲的是,这并不是在所有情况下都可行的解决方法。我在 MS Connect 上提出了一个关于此的问题:https ://connect.microsoft.com/VisualStudio/feedback/details/738316/system-configuration-configurationmanager-does-not-work-in-wpf-designer