Преобразование массива в ObservableCollection
в приложении C# используется следующий массив:
CProject[] projectArray = this.proxy.getProjectList(username, password);
однако мне нужно projectArray
как ObservableCollection<CProject>
. Что бы быть рекомендуемый способ сделать это? До сих пор я использую следующее утверждение:
ObservableCollection<CProject> projectList = new ObservableCollection<CProject>(projectArray);
вы бы также использовали этот оператор или рекомендовали бы другие способы?
2 ответов
IMHO, создание новой коллекции каждый раз, когда вы хотите добавить диапазон объектов, не очень хорошо, а я бы следовал ниже дизайна.
создайте класс, наследующий от ObservableCollection, чтобы вы могли получить доступ к свойству Items, которое защищено, а затем создать метод AddRange, который добавит в него элементы
public class MyObObservableCollection<T> : ObservableCollection<T>
{
public void AddRange(IEnumerable<T> items)
{
foreach (var item in items)
{
this.Items.Add(item);
}
}
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add));
}