Поведение конструктора ObservableCollection (IEnumerable)

2

В соответствии с MSDN существует перегрузка для конструктора ObservableCollection, к которому вы можете передать IEnumerable. Согласно очень короткой странице MSDN это сделает "Копировать" Ienumerable.

Как я могу определить, как это будет выглядеть? Будет ли "Копировать" полностью независимым от оригинала или изменения, внесенные в Ienumerable (например, по запросу linq), будут автоматически отражаться в ObservableCollection?

Страница MSDN

Теги:
observablecollection
ienumerable

1 ответ

4
Лучший ответ

Этот конструктор просматривает элементы в IEnumerable и добавляет каждый из них в ObservableCollection. После этого новый ObservableCollection не имеет ничего общего с IEnumerable (за исключением того, что если вы имеете дело с набором ссылочных типов, то ObservableCollection будет содержать ссылки на те же объекты, которые были предоставлены IEnumerable).

  • 0
    Это объясняет, почему мне это показалось странным, My Ienumerable - результат запроса Linq. Я ожидал иметь «плоскую» коллекцию результатов запроса, но вместо этого я получаю объекты, такие как _Employee1 = {System.Data.Linq.EntityRef <OITaskManager.Model.Employee>}, я предполагал, что, поскольку ObserveableCollection не реализует Вполне возможно, что они не могут быть ссылками. Теперь я вижу, что у вас может быть две коллекции, содержащие одинаковые ссылки, но реализующие разные интерфейсы? Вы можете запросить IQueryable и Bind to ObservableCollection, чтобы получить лучшее из обоих миров?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню