Обновление сетки данных WPF, связанной с представлением Entity Framework (SQL Server), после обновления базового объекта (таблица) - PullRequest
0 голосов
/ 20 июля 2011

У меня есть таблица данных WPF, которая использует StaticResource из CollectionViewSource, например, так ...

<Window.Resources>
<CollectionViewSource x:Key="TransmittalsSource" />
...
<DataGrid x:Name="uxTransmittalDataGrid" Grid.Row="2"
       ItemsSource="{Binding Source={StaticResource TransmittalsSource}}"
...

В своем коде я использую событие нажатия кнопки, чтобы назначить источникдля TransmittalsSource вот так ...

var transmittalsQuery = from t in _db.TransmittalsViews
    select t; // I've remove the where clauses (filters) for readability.
((CollectionViewSource)Resources["TransmittalsSource"]).Source = 
    transmittalsQuery;

TransmittalsViews - это объект View в базе данных SQL Server.Я использовал View, потому что мне нужно сделать некоторые кросс-таблицы, прежде чем представлять данные в сетку.

Теперь в другом окне я добавляю элемент (в основном обновляя один из столбцов представлений) в одну из базовых таблиц.TransmittalsViews называется Transmittals.

_db.Transmittals.AddObject(_transmittal);

Теперь, даже если я получу представление таблицы данных по умолчанию и вызову Refresh(), оно не работает.

Я подумываю получить DefaultView таблицы данных и использовать методы AddNew, но, видя, что источники разные, я думаю, что это невозможно.

Так как я могу заставитьобновить сетку данных, основанную на объекте View (SQL Server), после обновления другой сущности (таблицы), из которой он был основан?Я знаю, что мое кодирование не является идеальным на данный момент, поэтому я буду признателен за любые комментарии по методам, которые я также использовал.Я только начинаю изучать WPF:)

1 Ответ

0 голосов
/ 20 июля 2011

Мне удалось обойти эту проблему, установив MergeOption в OverwriteChanges.

_db.TransmittalsViews.MergeOption = MergeOption.OverwriteChanges;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...