Поскольку вы не предоставили код, который показывает, как вы создали StaticResource, я предполагаю, что вы хотите связать настройки напрямую из xaml.
Настройки привязки. По умолчанию из XAML
В первом случае добавьте пространство имен XML, которое указывает на пространство имен, в котором объявлен класс Settings:
xmlns:properties="clr-namespace:WpfSettings.Properties"
Затем вы можете связать свою коллекцию из настроек следующим образом:
ItemsSource="{Binding Source={x:Static properties:Settings.Default}, Path=Collection}"
Поскольку вы связываетесь непосредственно с коллекцией, которая объявлена непосредственно в настройках, WPF не знает об обновлениях коллекции, если она не реализует INotifyCollectionChanged
. Для решения этой проблемы вы можете создать ObservableCollection
в настройках.
Создать ObservableCollection в настройках
Открыть настройки в редакторе XML и добавить новые настройки следующим образом:
<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>
Всякий раз, когда вы добавляете элементы в настройки вашей коллекции, ListBox также будет обновляться.