Что надлежащий путь состоит в том, чтобы обработать несколько datagrids в управлении вкладкой так, чтобы ячейки оставили режим редактирования, когда вкладки изменяются?

В 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, поскольку это должно работать также, но для меня решение выше кажется, что будет более портативно между проектами.

20
задан Jon 26 May 2011 в 14:33
поделиться