0

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 不明なビルド エラー、「キーを null にすることはできません。パラメータ名: key Line 30 Position 56.'

バインディングを削除すると、すべて問題ないことがわかります。

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

バインドするために(必要のない双方向アプローチなしで)、これこの他のスレッドをたどりました。

私は何を間違えていますか?

4

1 に答える 1

0

作成した ViewModel または AppconfigProvider クラスに SoundplayerAction をバインドする必要があります。そのクラスで、appconfig 値を取得する Readonly プロパティを作成します。

そのクラスをビューの統計リソースとして追加できます。

このようにして、そのパスを取得する場所をいつでも簡単に変更し、複数のアプリケーション設定を 1 つのプロバイダー クラスに結合することもできます。

于 2013-06-24T08:50:32.580 に答える