Combobox的SelectedValue(或SelectedItem)OneWay绑定无法正常工作。有任何想法吗?

时间:2011-09-22 20:56:57

标签: wpf xaml binding combobox selectedvalue

在下面的窗口中,Existing Reports组合绑定到一个可观察的reportObjects集合。我有一个reportObject属性currentReport绑定到组合的SelectedValue属性OneWay。但是,当绑定在XAML中时,这不起作用。

SelectedValue="{Binding currentReport, Mode=OneWay}"

TwoWay绑定很好,但是如果不向reportObject类编写undo()方法,我就不能这样做。我将currentReport的属性绑定到各种文本框进行编辑。我想绑定OneWay,因此源不会被更改。 currentReport的属性都是TwoWay绑定到相应的文本框,因此当我在SQL [Save]中更新表时,它将从该对象拉出,谁的数据是最新的。

<TextBox Text="{Binding currentReport.reportName, Mode=TwoWay}"

从currentReport绑定到文本框的所有属性也都可以正常工作。唯一的问题是从SelectedValue到currentReport对象的OneWay绑定。有没有人有任何想法如何让这个工作?我看到有一个错误,但我看到的帖子是2009年。

enter image description here

抱歉黄色。不是我的想法。 =)

编辑:为了以防万一,添加了这个XAML。

<ComboBox ItemsSource="{Binding reportsCollection}" SelectionChanged="cboReports_SelectionChanged"
                                  DisplayMemberPath="displayName"
                                  SelectedValue="{Binding currentReport, Mode=TwoWay}"
                                  x:Name="cboReports" Width="342" Height="40" VerticalAlignment="Center"/>  

1 个答案:

答案 0 :(得分:1)

忘记你需要改变价值 - 这是一个单独的问题 - 需要审查你的数据设计。从UI问题问题开始。如果您希望用户能够从组合框中选择项目,则它必须具有双向绑定。你的第一个问题是SelectedValue =“{Binding currentReport,Mode = OneWay}”失败的原因是什么?