在下面的窗口中,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年。
抱歉黄色。不是我的想法。 =)
编辑:为了以防万一,添加了这个XAML。
<ComboBox ItemsSource="{Binding reportsCollection}" SelectionChanged="cboReports_SelectionChanged"
DisplayMemberPath="displayName"
SelectedValue="{Binding currentReport, Mode=TwoWay}"
x:Name="cboReports" Width="342" Height="40" VerticalAlignment="Center"/>
答案 0 :(得分:1)
忘记你需要改变价值 - 这是一个单独的问题 - 需要审查你的数据设计。从UI问题问题开始。如果您希望用户能够从组合框中选择项目,则它必须具有双向绑定。你的第一个问题是SelectedValue =“{Binding currentReport,Mode = OneWay}”失败的原因是什么?