protected override PropertyEditor AutoCreateMemberEditor(MemberInfo info)
		{
			if (info.IsEquivalent(ReflectionInfo.Property_DrawTechnique_PreferredVertexFormat))
			{
				List<VertexDeclaration> vertexTypes = new List<VertexDeclaration>();
				vertexTypes.Add(null);
				foreach (TypeInfo vertexType in DualityApp.GetAvailDualityTypes(typeof(IVertexData)))
				{
					if (vertexType.IsClass) continue;
					if (vertexType.IsAbstract) continue;
					if (vertexType.IsInterface) continue;

					IVertexData vertex = vertexType.CreateInstanceOf() as IVertexData;
					vertexTypes.Add(vertex.Declaration);
				}

				ObjectSelectorPropertyEditor e = new ObjectSelectorPropertyEditor();
				e.EditedType = (info as PropertyInfo).PropertyType;
				e.Items = vertexTypes.Select(decl => new ObjectItem(decl, decl != null ? decl.DataType.Name : "None"));
				this.ParentGrid.ConfigureEditor(e);
				return e;
			}
			return base.AutoCreateMemberEditor(info);
		}
 protected override bool IsAutoCreateMember(MemberInfo info)
 {
     if (info.IsEquivalent(ReflectionInfo.Property_BatchInfo_MainColor)) return true;
     if (info.IsEquivalent(ReflectionInfo.Property_BatchInfo_Technique)) return true;
     return false;
 }
		protected override bool IsAutoCreateMember(MemberInfo info)
		{
			if (info.IsEquivalent(ReflectionInfo.Property_SoundEmitter_Sources)) return false;
			return base.IsAutoCreateMember(info);
		}