LINQ2SQL - Результат привязки к сетке - хотите, чтобы изменения отражались без повторной привязки? - PullRequest
0 голосов
/ 02 апреля 2010

У меня есть сетка (DevExpress XtraGrid, если это имеет значение), которая связана со свойством LINQ to SQL Entity.

gridItems.DataSource = purchaseOrder.PendingItemsGrouped;

Хорошо, сетка отображается правильно, и я вижу покупкуэлементы, ожидающие рассмотрения.Проблема возникает, когда buyOrder.PendingItemsGrouped изменяется, когда это происходит, сетка не отражает изменения.

Точная процедура выглядит следующим образом: пользователь выбирает строку из сетки, вставляет серийный номерв определенном текстовом поле, а затем нажмите «Ввод», эффективно получая этот предмет из заказа на поставку и вставляя его в запас.

inventoryWorker.AddItemToStock( userSelectedItem, serialNumber );

Товар надлежащим образом вставляется в инвентарь, но сетка по-прежнему показывает элемент какесли он все еще ожидает его получения.

Как мне решить эту проблему?Нужно ли мне действительно повторно привязать сетку, чтобы изменения могли быть отражены?

Я даже попытался вместо:

gridItems.DataSource = ...;

Это:

gridItems.DataBindings.Add( new Binding( "DataSource", purchase, "PendingItemsGrouped" ) );

Но не смог решить проблему.Большое спасибо за потраченное время,

Исаак.

ОБС: Переплетение Решетки работает, но мой вопрос ... это даже правильный способ делать вещи?Я чувствую, что нахожусь на верном пути.

Ответы [ 2 ]

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

Вызов привязки данных на самом деле правильный подход, когда вы думаете о том, как работает привязка данных в веб-формах. Во всех примерах при привязке данных к объектам вызовы привязки данных происходят всякий раз, когда коллекция модифицируется.

Причина, по которой он чувствует себя неправильным, заключается в том, что гораздо лучше использовать DataSourceControl, например LinqDataSourceControl или ObjectDataSourceControl, где все эти вещи обрабатываются для вас.

По этому пути вам могут помочь две вещи: при использовании LinqDataSourceControl вам может потребоваться переопределить различные методы -ing (Выбор, Вставка, Удаление) и т. Д., Чтобы добавить дополнительную фильтрацию и логику.

Другая вещь, которая приходит на ум, это http://multitierlinqtosql.codeplex.com/. Особенно раздел по Custom ObjectDataSource.

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

Я сам не пробовал, но Bindable LINQ позволяет добиться этого.

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