我正在使用带有字符串集合的设置。
我使用以下绑定填充列表框:
segment
当我向集合中添加新字符串时,列表框中的项目将不会更新。
我错过了什么?
答案 0 :(得分:0)
如果您没有提供显示如何创建StaticResource的代码,我将假设您要直接从xaml绑定设置。
在第一个实例中,添加指向设置类类别的命名空间的XML命名空间:
xmlns:properties="clr-namespace:WpfSettings.Properties"
然后,您可以按如下方式绑定您的收藏集:
ItemsSource="{Binding Source={x:Static properties:Settings.Default}, Path=Collection}"
由于您直接绑定到直接在设置中声明的集合,因此如果WPF未实现INotifyCollectionChanged
,则不会知道集合更新。要解决此问题,您可以在设置中创建ObservableCollection
。
Open settings in XML editor并添加新设置,如下所示:
<Setting Name="Collection" Type="System.Collections.ObjectModel.ObservableCollection<System.String>" Scope="User">
<Value Profile="(Default)" />
</Setting>
然后在设置编辑器(source)中添加默认值:
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
最后,它可能看起来像这样:
<Setting Name="Collection" Type="System.Collections.ObjectModel.ObservableCollection<System.String>" Scope="User">
<Value Profile="(Default)"><?xml version="1.0" encoding="utf-16"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" /></Value>
</Setting>
每当您向Collection设置添加项目时,ListBox也会更新。