private ObjectView(ObjectListView parent, object obj, int baseIndex, bool isNew)
		{
			_parent = parent;
			_object = obj;
			_isNew = isNew;
			_baseIndex = baseIndex;

			if (_object is INotifyPropertyChanged)
			{
				((INotifyPropertyChanged)_object).PropertyChanged += new PropertyChangedEventHandler(Object_PropertyChanged);
			}
		}
			/// <summary>
			/// Initializes a new instance of the Csla.ObjectListView.ObjectListViewEnumerator class
			/// with the given System.Collections.Generic.IList and System.Collections.Generic.List&lt;ListItem>.
			/// </summary>
			/// <param name="parent">The parent ObjectListView.</param>
			public ObjectListViewEnumerator(ObjectListView parent)
			{
				_parent = parent;
				_parent.ListChanged += new ListChangedEventHandler(_parent_ListChanged);
				Reset();
			}
		internal static ObjectView NewObjectView(ObjectListView parent, object obj, int baseIndex, bool isNew)
		{
			if (parent.NoProperties)
			{
				return new NoPropertyObjectView(parent, obj, baseIndex, isNew);
			}

			return new ObjectView(parent, obj, baseIndex, isNew);
		}
		internal static ObjectView NewObjectView(ObjectListView parent, object obj, int baseIndex)
		{
			return NewObjectView(parent, obj, baseIndex, false);
		}
			public NoPropertyObjectView(ObjectListView parent, object obj, int baseIndex, bool isNew)
				: base(parent, obj, baseIndex, isNew)
			{
			}
			public DefaultItemObjectView(ObjectListView parent)
				: base(parent, null, -1, false)
			{
				_values = new Dictionary<string, object>(parent.ObjectProperties.Count);

				for (int i = 0; i < parent.ObjectProperties.Count; i++)
				{
					_values.Add(parent.ObjectProperties[i].Name, null);
				}
			}