为什么只需要绑定密钥?

时间:2013-06-24 08:42:56

标签: c# wpf xaml binding app-config

我正在尝试通过xaml将app.config值绑定到控件。这是代码:

//App.config:
<appSettings>
    <add key="SoundFile" value="C:\\Windows\\Media\\Windows Hardware Fail.wav"/>
</appSettings>

//window.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:properties="clr-namespace:MfClient.Properties">
...
<SoundPlayerAction Source="{Binding Source={x:Static p:Settings.Default},Path=SoundFile}"/>

这会出现此错误:

  

错误44未知的构建错误,'键不能为空。参数名称:key   第30行第56位。'

如果我删除了绑定,一切都证明是正确的:

<SoundPlayerAction Source="C:\Windows\Media\Windows Hardware Fail.wav" />

为了绑定(没有我不需要的双向方法),我跟着thisthis其他线程。

我出错了什么?

1 个答案:

答案 0 :(得分:0)

您应该将SoundplayerAction绑定到您创建的ViewModel或AppconfigProvider类。在该类上创建一个Readonly属性,用于检索appconfig值。

您可以在视图中将该类添加为statis资源。

通过这种方式,您还可以随时轻松更改获取该路径的位置,并将多个应用程序设置合并到一个提供程序类中