1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
7
using System.Collections.Generic;
10
using System.Collections.ObjectModel;
11
using ICSharpCode.Data.Core.Interfaces;
15
namespace ICSharpCode.Data.Core.DatabaseObjects
17
public class DatabaseObjectsCollection<T> : ObservableCollection<T>, IDatabaseObjectsCollection where T : IDatabaseObjectBase
21
protected IDatabaseObjectBase _parent = null;
27
public List<IDatabaseObjectBase> NonGenericItems
31
List<IDatabaseObjectBase> items = new List<IDatabaseObjectBase>();
32
items.AddRange(this.Cast<IDatabaseObjectBase>());
37
public int SelectedItemsCount
41
int selectedItemsCount = 0;
43
foreach (T item in this)
49
return selectedItemsCount;
57
public new void Add(T item)
59
item.Parent = _parent;
67
public DatabaseObjectsCollection(IDatabaseObjectBase parent)
72
public DatabaseObjectsCollection()
78
public static class DatabaseObjectsCollection
80
#region Extension methods
82
public static DatabaseObjectsCollection<T> ToDatabaseObjectsCollection<T>(this IEnumerable<T> source) where T : IDatabaseObjectBase
84
DatabaseObjectsCollection<T> dest = new DatabaseObjectsCollection<T>(null);
86
foreach (T item in source)
92
public static DatabaseObjectsCollection<T> ToDatabaseObjectsCollection<T>(this IEnumerable<T> source, IDatabaseObjectBase parent) where T : IDatabaseObjectBase
94
DatabaseObjectsCollection<T> dest = new DatabaseObjectsCollection<T>(parent);
96
foreach (T item in source)