【发布时间】:2010-07-22 00:56:16
【问题描述】:
我正在使用 SL4 和与 SL4 同时发布的 RIA 服务版本(2010 年 4 月中旬)。
我有一个绑定到 PagedCollectionView 的数据网格,它包装了 RIA 服务返回的 EntitySet,即 context.MyEntities。我不允许直接在网格中进行编辑。相反,我有一个单独的“更新”面板(一个用户控件),其中包含链接到所选网格项目的控件。
做了几处更改后,我尝试调用 context.RejectChanges()。 几乎一切都恢复到原始状态,包括关联实体的属性。问题是我在“更新”面板中有一组 3 个单选按钮,它们绑定到关联实体上的枚举属性。我使用值转换器根据枚举属性的值设置每个按钮。所有三个单选按钮的绑定都设置为双向绑定。出于某种原因,context.RejectChanges() 恢复 一些 对此属性的更改,但 错过 更改到 所选项目。即使我在进行更改后移动到不同的行,返回到更改的行,然后 然后 拒绝更改,也会发生这种情况。
(也许问题可能与单击单选按钮会影响两个绑定这一事实有关,即未选中的单选按钮和已选中的单选按钮。只是一个理论......)这是单选按钮:
<StackPanel Orientation="Horizontal">
<RadioButton x:Name="rbUnmodified" Content="Unmodified" Margin="3" IsChecked="{Binding ReviewStatus, Mode=TwoWay, Converter={StaticResource enumBoolConverter}, ConverterParameter=Unmodified}" />
<RadioButton x:Name="rbInProgress" Content="In Progress" Margin="3" IsChecked="{Binding ReviewStatus, Mode=TwoWay, Converter={StaticResource enumBoolConverter}, ConverterParameter=InProgress}" />
<RadioButton x:Name="rbResolved" Content="Resolved" Margin="3" IsChecked="{Binding ReviewStatus, Mode=TwoWay, Converter={StaticResource enumBoolConverter}, ConverterParameter=Resolved}" />
</StackPanel>
在值转换器内部,如果绑定属性的枚举值与转换器参数匹配,则转换器返回true,否则返回false。
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: silverlight silverlight-4.0 wcf-ria-services