Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将combobox所选项目数据绑定到设置_C#_Wpf_Data Binding_Xaml_Combobox - Fatal编程技术网

C# 将combobox所选项目数据绑定到设置

C# 将combobox所选项目数据绑定到设置,c#,wpf,data-binding,xaml,combobox,C#,Wpf,Data Binding,Xaml,Combobox,我使用应用程序设置属性和数据绑定存储用户指定的设置。它一直工作得很好,直到我希望用户选择combobox的字体。用户设置和组合框之间的数据绑定不起作用。我想存储字体族名称 App.XML <Application.Resources> <ResourceDictionary> <properties:Settings x:Key="Settings" /> </ResourceDictionary>

我使用应用程序设置属性和数据绑定存储用户指定的设置。它一直工作得很好,直到我希望用户选择combobox的字体。用户设置和组合框之间的数据绑定不起作用。我想存储字体族名称

App.XML
<Application.Resources>
    <ResourceDictionary>
        <properties:Settings x:Key="Settings" />
    </ResourceDictionary>               
</Application.Resources>
App.XML
Window.XML


SelectedItem=“{Binding Source={StaticResource Settings},Path=Default.Font,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}”
Margin=“57122199118”
设置:
字体字符串用户Arial

它以什么方式不工作?是否引发异常、项目是否未编译或设置是否未保存


不要忘记,修改设置后必须明确保存设置。因此,您最好绑定到应用并保存设置的
ICommand
,而不是直接绑定到设置,或者添加绑定到此类命令的“save”按钮。

添加SelectedValuePath=“Source”解决此问题。

未保存/加载设置。我正在使用Properties.Settings.Default.Save();保存设置。下面是一个小演示,它有复选框(正在工作)和组合框(不工作)。www.tlcube.com/files/cfgdemo。zip@Tuukka我可能要到周末的某个时候才能看到这个;也许今天会有其他人来看看。
<ComboBox Name="Families" ItemsSource="{x:Static Fonts.SystemFontFamilies}"
  <!-- This line -->
  SelectedItem="{Binding Source={StaticResource Settings}, Path=Default.Font, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
              Margin="57,122,199,118">
        <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" FontFamily="{Binding}"/>
        </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>