这是我的xaml:
SelectedItem="{Binding Source={StaticResource Settings}, Path=Default.Selected, Converter={StaticResource SelectedTabConverter}}"
我在Convert()和ConvertBack()中添加了Console.WriteLine(),这样我就可以看到他们正在做他们应该做的事情。但是,当我在我的OnExit()中保存它之前检查了我的设置时,我看到设置没有改变。我认为这种绑定是双向的,我改变UI的任何内容都应该同时改变设置。有什么想法吗?
答案 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}}"