用户设置未更改

时间:2013-01-21 07:57:01

标签: c# wpf

这是我的xaml:

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

我在Convert()和ConvertBack()中添加了Console.WriteLine(),这样我就可以看到他们正在做他们应该做的事情。但是,当我在我的OnExit()中保存它之前检查了我的设置时,我看到设置没有改变。我认为这种绑定是双向的,我改变UI的任何内容都应该同时改变设置。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

首先,如果不阅读previous question,很难说出问题所在。

您已在App的ResourceDictionary中创建了一个Settings对象作为资源。没有必要这样做。只需绑定到静态Settings.Default对象,如下所示(并在您的其他问题的答案中正确显示)。

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

其中XML命名空间properties引用应用程序的Properties命名空间。

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

除此之外,您应该绑定到SelectedIndex属性而不是SelectedItem。这样你根本不需要转换器。

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

另见this question