private Hashtable GroupMetadataEntities(MetadataFileCollection files) {
			Hashtable entityCollections = new Hashtable();
			foreach (MetadataFile file in files) {
				foreach (IMetadataEntity entity in file.MetadataEntities) {
					string name = PathResolver.GetPluralForm(entity.RootNodeName);
					if (name == "#comments")
					{
						continue;
					}
					if (!entityCollections.ContainsKey(name)) {
						entityCollections.Add(name, new MetadataEntityCollection());
					}
					MetadataEntityCollection entityCollection = (MetadataEntityCollection) entityCollections[name];
					entityCollection.Add(entity);
				}
			}
			return entityCollections;
		}
			public MetadataFileEnumerator(MetadataFileCollection mappings) : base(mappings)
			{
			}
		private void FillMetadataFiles(MetadataFileCollection fileCollection, Guid[] metadataFileIDs)
		{
			if (Project == null) return;

			foreach (Guid guid in metadataFileIDs) {
				MetadataFile file = Project.MetadataFiles.GetMetadataFile(guid);
				if (file != null) {
					fileCollection.Add(file);
				}
			}
		}
		public void Bind(MetadataFileCollection availableFiles, MetadataFileCollection selectedFiles) {
			_availableFiles = availableFiles;
			_selectedFiles = selectedFiles;
			RefreshView();
		}