2013-01-21 50 views
0

这是我的XAML:用户设置不更改

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

我在转换中添加Console.WriteLine()()和ConvertBack(),所以我可以看到他们在做他们应该做的事情。然而,当我在将我的设置保存到OnExit()之前检查了设置后,我发现设置没有改变。我认为这种绑定是双向的,我改变了任何UI,应该同时改变设置。任何想法?

+0

你有没有尝试添加Mode = TwoWay绑定? – daryal

+0

是的,我做了...它没有帮助 – user1447343

回答

2

首先,很难说没有看到你的问题previous question

您已在应用程序的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

+0

喜欢看到人们在他们的XAML中使用'x:Static'。 –

+0

@NicolasRepiquet无论评论意味着什么...... – Clemens

+0

我应该先将“+1”放在第一位,以便更清晰:)例如,我将所有转换器都转换为单例,并使用'x:Static'来引用它们而不是通常的StaticResource混乱。 –