2015-03-19 6 views
0

Похоже, что отсутствуют методы и свойства ObservableCollection. Я весьма озадачен.Почему все методы ObservableCollection отсутствуют в моем проекте?

Вот скриншот старого проекта: enter image description here

А теперь мой текущий проект: enter image description here

Это используя оператор в обоих проектах:

using System.Collections.ObjectModel; 

ли они обновить SDK и удалены все методы, или я использую неправильный ObservableCollection? Я понятия не имею, что происходит.

ответ

2

Когда вы видите стрелку вниз на метод enter image description here, что означает, что метод не является частью класса, но является «Extension Method». Методы расширения - это в основном статические методы из других классов, которые действуют как методы экземпляра в классе, с которым вы работаете.

Большинство элементов в вашем списке - это добавление using System.Linq; в начало вашего файла. Это приведет к тому, что все методы расширения в System.Linq.Enumerable появятся в списке, это даст вам такие вещи, как All<> или Any<>. Однако AddRange<> не является стандартным методом расширения в System.Linq и может быть добавлен какой-либо другой сторонней библиотекой (или некоторым пространством имен в .NET, который я не знаю), который вы используете.

Самый простой способ узнать, где вы получаете AddRange<> от это пойти к проекту, что он работает для, а затем щелкните правой кнопкой мыши по методу в коде, и вы должны увидеть «Перейти к определению» или аналогичных , который приведет вас к файлу или представлению метаданных файла, объявившего этот метод расширения.

1: Я использую Resharper и он изменяет свое меню правой кнопки мыши, так что я не знаю точной формулировки

+0

Спасибо за великолепное объяснение. Старый проект был создан во время курса MVA, и я не знал о методах расширения, поэтому, используя System.Linq; скучал. – Cort3vl

2

«Отсутствующие» методы - это методы расширения LINQ. Добавьте LINQ в список включенных библиотек.

+0

'AddRange <>' не является частью LINQ, но остальные. –

+0

@ScottChamberlain 'ObservableCollection' не реализует метод' AddRange' – Gusdor

+0

@Gusdor Я не сказал, что да, позвольте мне перефразировать: метод расширения 'AddRange <>' не является частью LINQ, а другая библиотека добавляет его в список. –

3

Я думаю, что вам не хватает расширений LINQ. Попробуйте добавить:

using System.Linq;