public void CreateSortSubstitution(string originalProperty, string substituteProperty)
        {
            TypeAccessor typeAccessor = TypeAccessor.GetAccessor(_itemType);

            PropertyDescriptor originalDescriptor   = typeAccessor.PropertyDescriptors[originalProperty];
            PropertyDescriptor substituteDescriptor = typeAccessor.PropertyDescriptors[substituteProperty];

            if (originalDescriptor == null)
            {
                throw new InvalidOperationException("Can not retrieve PropertyDescriptor for original property: " + originalProperty);
            }
            if (substituteDescriptor == null)
            {
                throw new InvalidOperationException("Can not retrieve PropertyDescriptor for substitute property: " + substituteProperty);
            }

            _sortSubstitutions[originalProperty] = new SortSubstitutionPair(originalDescriptor, substituteDescriptor);
        }
		public void CreateSortSubstitution(string originalProperty, string substituteProperty)
		{
			TypeAccessor typeAccessor = TypeAccessor.GetAccessor(_itemType);

			PropertyDescriptor originalDescriptor = typeAccessor.PropertyDescriptors[originalProperty];
			PropertyDescriptor substituteDescriptor = typeAccessor.PropertyDescriptors[substituteProperty];

			if (originalDescriptor == null)   throw new InvalidOperationException("Can not retrieve PropertyDescriptor for original property: " + originalProperty);
			if (substituteDescriptor == null) throw new InvalidOperationException("Can not retrieve PropertyDescriptor for substitute property: " + substituteProperty);

			_sortSubstitutions[originalProperty] = new SortSubstitutionPair(originalDescriptor, substituteDescriptor);
		}