【发布时间】:2012-11-29 19:00:04
【问题描述】:
像这样映射应用程序属性:
<Application.Resources>
<properties:Settings x:Key="Settings" />
</Application.Resources>
目标是将字体大小设置 MainWindowFontSize (int) 绑定到组合框上的选定值:
<ComboBox
SelectedValuePath="Content"
SelectedValue="{Binding Default.MainWindowFontSize, Source={StaticResource Settings}}">
<ComboBoxItem>8</ComboBoxItem>
...
<ComboBoxItem>48</ComboBoxItem>
</ComboBox>
这个问题是它只在一个方向上起作用,从设置到组合框,但组合中的任何选择都不会回到设置。 当我在模型中使用常规属性作为字体大小时,一切似乎都正常......
关于如何使绑定以双向方式工作的任何建议?
【问题讨论】:
-
这篇文章是指使用 ListBox...我的问题是关于组合框...我可以成功地使 TextBox 与设置一起工作,但不是 ComboBox...感谢您查找它。跨度>
-
是的,在阅读了您的答案后,我没有意识到它是特定于控制的。
-
创建一个新的设置实例来访问你真正想要的实例的静态属性似乎是个坏主意,我建议使用以下形式的绑定:
{Binding <PropertyName>, Source={x:Static properties:Settings.Default}} -
这只是表达相同意图的另一种方式......我也遇到了 msdn 论坛上报告的组合框的类似问题,声称这是 .net 4.5 中的错误。 (对不起,没有保存链接)我打算使用组合框的方式应该没有任何问题。但是,它只是不能像其他控件那样工作。
标签: wpf data-binding properties combobox application-settings