0

これは私のxamlです:

SelectedItem="{Binding Source={StaticResource Settings}, Path=Default.Selected, Converter={StaticResource SelectedTabConverter}}"

Convert()とConvertBack()にConsole.WriteLine()を追加したので、彼らが想定どおりに動作していることがわかりました。ただし、OnExit()に保存する前に設定を確認したところ、設定が変更されていないことがわかりました。このバインディングは双方向だと思いました。UIに何かを変更すると、同時に設定も変更されるはずです。何か案が?

4

1 に答える 1

2

まず、前の質問を読まないと、問題が何であるかを判断するのは困難です。

アプリのResourceDictionaryにリソースとしてSettingsオブジェクトを作成しました。それをする必要はありません。以下に示すように静的オブジェクトにバインドするだけSettings.Defaultです(そして、他の質問への回答に正しく表示されます)。

{Binding Path=Selected, Source={x:Static properties:Settings.Default}}

ここで、XML名前空間はアプリケーションの名前空間をproperties参照しPropertiesます。

<Window ...
        xmlns:properties="clr-namespace:MyHomework__MVVM_.Properties"
        ... >

それとは別に、 SelectedItemではなくSelectedIndexプロパティにバインドする必要があります。そうすれば、コンバーターはまったく必要ありません。

SelectedIndex="{Binding Path=Selected, Source={x:Static properties:Settings.Default}}"

この質問も参照してください。

于 2013-01-21T08:45:33.007 に答える