Привязка не обновляется для DataGrid в Entity Framework 4 - PullRequest
3 голосов
/ 25 мая 2011

Я использую Entity Framework 4 / WPF / C #. new ObservableCollection<Entity>(context.EntitySet) связан с сеткой данных WPF в XAML. Это отлично работает. Но когда я программно создаю новый объект и добавляю его в контекст, DataGrid остается неизменным. Что я должен сделать, чтобы обновить DataGrid?

Ответы [ 4 ]

2 голосов
/ 25 мая 2011

Вы не видите обновлений, поскольку ObservableCollection<T> получает эти значения из сущности, установленной один раз, во время построения. Все дополнительные изменения в наборе сущностей не "наблюдаются".

Только вызовы ObservableCollection<T>.Add (и др.) Генерируют события CollectionChanged.

1 голос
/ 25 мая 2011

Как сказали Sixlettervariables, используемый вами конструктор берет значения context.EntitySet и добавляет их все в новую коллекцию ObservableCollection. Добавление сделать ваш контекст. EntitySet не добавляет в дублированный список элементов.

Можете ли вы показать, как определяется ваш EntitySet? Можно ли было сделать его коллекцией ObservableCollection и связать ее напрямую?

0 голосов
/ 25 мая 2011

хорошо, все в порядке;) как сетка данных должна знать, что вы добавляете элемент в свой контекст?сетка данных будет просто проинформирована, если вы добавите элемент в свою наблюдаемую коллекцию.

, поэтому, если вы добавляете элемент, создайте свой контекст, просто вызовите OnPropertyChanged ("YourEntityCollectionPropertyHere") для свойства коллекции.

0 голосов
/ 25 мая 2011

Я не видел упоминания Silverlight, так что я полагаю, вы не пользуетесь услугами RIA. Как вы добавляете объект в контекст? .AddTo {EntitySetName] () или. {EntitySetNme} .Add ()

Если вы привязываетесь непосредственно к контексту данных, я считаю, что последний вариант - ваш лучший выбор. Лично я бы уклонялся от этого, так как ваш уровень презентации напрямую связан с вашим уровнем данных. Вы должны установить переход между (бизнес-уровень), который обрабатывает добавление сущностей в связанную коллекцию пользовательского интерфейса и постоянство отдельно.

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