Двусторонняя привязка данных с Entity Framework и WPF DataGrid - PullRequest
1 голос
/ 23 апреля 2010

У меня проблемы с добавлением сущности Entity Framework в EntitySet ObjectContext автоматически с использованием функциональности добавления WPG 4.0 DataGrid. Вот настройки:

DataGrid -> BoundTo -> ListCollectionView -> BoundTo -> EntitySet

Когда я в интерактивном режиме добавляю строку в DataGrid, к EntitySet не добавляется новая сущность. Обновление данных ячейки строки фактически обновляет свойства связанной сущности.

Есть идеи, что я могу делать не так?

Вот XAML для ListCollectionView:

<CollectionViewSource x:Key="FieldList"
    Source="{Binding DB.Fields}"
    CollectionViewType="{x:Type data:ListCollectionView}">
    <CollectionViewSource.SortDescriptions>
        <ComponentModel:SortDescription PropertyName="Name" />
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource>

1 Ответ

1 голос
/ 23 апреля 2010

Есть ли какая-то конкретная причина, по которой вы используете ListCollectionView? Как вы создаете свой ListCollectionView?

Вызов CollectionViewSource.GetDefaultView( ObjectQuery<> ) дает BindingListCollectionView. Я только что выполнил несколько тестов, и вызов IEditableCollectionView.AddNew() и IEditableCollectionView.CommitNew() добавляет новую сущность к сущности, установленной как ожидалось.

Я предлагаю вам просто связать ваше свойство ObjectContext ObjectQuery<> с ItemsSource из DataGrid, и будет использовано представление коллекции по умолчанию, что в конечном итоге даст вам ожидаемое поведение.

...