Я использую SL4 и версию RIA Services, выпущенную одновременно с SL4 (середина апреля 2010 года).
У меня есть сетка данных, которая связана с PagedCollectionView, который оборачивает EntitySet, возвращенный службами RIA, т.е. context.MyEntities. Я не разрешаю редактировать прямо в сетке. Вместо этого у меня есть отдельная панель «обновления» (UserControl) с элементами управления, которые ссылаются на выбранный элемент сетки.
После внесения нескольких изменений я попытался вызвать context.RejectChanges (). Почти все возвращается в исходное состояние, включая свойства связанных объектов. Проблема в том, что у меня есть набор из 3 переключателей на панели «обновление», которые привязаны к перечисляемому свойству в связанной сущности. Я использую конвертер значений, чтобы установить каждую кнопку в соответствии со значением перечисленного свойства. Привязки для всех трех переключателей установлены для привязки TwoWay. По какой-то причине context.RejectChanges () возвращает некоторые изменяет это свойство, но пропускает изменяется на выбранный элемент . Это происходит даже тогда, когда я перехожу на другую строку после внесения изменений, возвращаюсь к измененной строке и , а затем отклоняет изменения.
(Возможно, проблема может быть связана с тем, что нажатие на радио-кнопку влияет на две привязки: радио-кнопка, которая стала непроверенной и радио-кнопка, которая стала проверенной. Просто теория ...) Вот xaml для переключатели:
<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.
Есть идеи как это исправить?