В wpf я устанавливаю управление вкладкой, которое связывает с набором объектов, каждый объект имеет шаблон данных с сеткой данных, представляющей данные. Если я выберу конкретную ячейку и помещу ее в режим редактирования, то оставляя сетку путем движения в другую вкладку это заставит исключение ниже быть брошенным на возврат datagrid:
'DeferRefresh' не разрешают во время транзакции AddNew или EditItem.
Кажется, что ячейка никогда не оставляла режим редактирования. Существует ли простой способ вынуть ячейку из режима редактирования, или что-то еще продолжается здесь?
Обновление: похоже, не связываю ли я управление вкладкой с источником данных, но вместо этого явно определяю каждую вкладку и затем связываю каждый объект в источнике данных к довольному управление, эта проблема уходит. Это не действительно отличное решение, таким образом, я все еще хотел бы знать, как связать набор непосредственно с управлением вкладкой.
Обновление: Таким образом, то, что я на самом деле сделал для своего собственного решения, должно использовать ListView и довольное управление вместо управления вкладкой. Я использую стиль для создания вкладки взгляда представления списка как. Модель представления выставляет ряд дочерних моделей представления и позволяет пользователю выбирать один через представление списка. Довольное управление затем представляет выбранную модель представления и каждую модель представления, имеет связанный шаблон данных, который содержит сетку данных. С этой установкой, переключающейся между моделями представления, в то время как в режиме редактирования на сетке правильно закончит режим редактирования и сохранит данные.
Вот xaml для установки этого:
<ListView ItemTemplate="{StaticResource MakeItemsLookLikeTabs}"
ItemsSource="{Binding ViewModels}"
SelectedItem="{Binding Selected}"
Style="{StaticResource MakeItLookLikeATabControl}"/>
<ContentControl Content="{Binding Selected}">
Я приму ответ Phil, поскольку это должно работать также, но для меня решение выше кажется, что будет более портативно между проектами.