Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Base / System / ComponentModel / SortDescription.cs / 2 / SortDescription.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) 2003 by Microsoft Corporation. All rights reserved.
//
//
//
// Description: Defines property and direction to sort.
//
// See spec at http://avalon/connecteddata/M5%20Specs/IDataCollection.mht
//
// History:
// 06/02/2003 : [....] - Created
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Windows; // SR
namespace System.ComponentModel
{
///
/// Defines a property and direction to sort a list by.
///
public struct SortDescription
{
//-----------------------------------------------------
//
// Public Constructors
//
//-----------------------------------------------------
#region Public Constructors
///
/// Create a sort description.
///
/// Property to sort by
/// Specifies the direction of sort operation
/// direction is not a valid value for ListSortDirection
public SortDescription(string propertyName, ListSortDirection direction)
{
if (direction != ListSortDirection.Ascending && direction != ListSortDirection.Descending)
throw new InvalidEnumArgumentException("direction", (int)direction, typeof(ListSortDirection));
_propertyName = propertyName;
_direction = direction;
_sealed = false;
}
#endregion Public Constructors
//------------------------------------------------------
//
// Public Properties
//
//-----------------------------------------------------
#region Public Properties
///
/// Property name to sort by.
///
public string PropertyName
{
get { return _propertyName; }
set
{
if (_sealed)
throw new InvalidOperationException(SR.Get(SRID.CannotChangeAfterSealed, "SortDescription"));
_propertyName = value;
}
}
///
/// Sort direction.
///
public ListSortDirection Direction
{
get { return _direction; }
set
{
if (_sealed)
throw new InvalidOperationException(SR.Get(SRID.CannotChangeAfterSealed, "SortDescription"));
if (value < ListSortDirection.Ascending || value > ListSortDirection.Descending)
throw new InvalidEnumArgumentException("value", (int) value, typeof(ListSortDirection));
_direction = value;
}
}
///
/// Returns true if the SortDescription is in use (sealed).
///
public bool IsSealed
{
get { return _sealed; }
}
#endregion Public Properties
//------------------------------------------------------
//
// Public methods
//
//------------------------------------------------------
#region Public Methods
/// Override of Object.Equals
public override bool Equals(object obj)
{
return (obj is SortDescription) ? (this == (SortDescription)obj) : false;
}
/// Equality operator for SortDescription.
public static bool operator==(SortDescription sd1, SortDescription sd2)
{
return sd1.PropertyName == sd2.PropertyName &&
sd1.Direction == sd2.Direction;
}
/// Inequality operator for SortDescription.
public static bool operator!=(SortDescription sd1, SortDescription sd2)
{
return !(sd1 == sd2);
}
/// Override of Object.GetHashCode
public override int GetHashCode()
{
int result = Direction.GetHashCode();
if (PropertyName != null)
{
result = unchecked(PropertyName.GetHashCode() + result);
}
return result;
}
#endregion Public Methods
//-----------------------------------------------------
//
// Internal methods
//
//------------------------------------------------------
#region Internal Methods
internal void Seal()
{
_sealed = true;
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private string _propertyName;
private ListSortDirection _direction;
bool _sealed;
#endregion Private Fields
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) 2003 by Microsoft Corporation. All rights reserved.
//
//
//
// Description: Defines property and direction to sort.
//
// See spec at http://avalon/connecteddata/M5%20Specs/IDataCollection.mht
//
// History:
// 06/02/2003 : [....] - Created
//
//---------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Windows; // SR
namespace System.ComponentModel
{
///
/// Defines a property and direction to sort a list by.
///
public struct SortDescription
{
//-----------------------------------------------------
//
// Public Constructors
//
//-----------------------------------------------------
#region Public Constructors
///
/// Create a sort description.
///
/// Property to sort by
/// Specifies the direction of sort operation
/// direction is not a valid value for ListSortDirection
public SortDescription(string propertyName, ListSortDirection direction)
{
if (direction != ListSortDirection.Ascending && direction != ListSortDirection.Descending)
throw new InvalidEnumArgumentException("direction", (int)direction, typeof(ListSortDirection));
_propertyName = propertyName;
_direction = direction;
_sealed = false;
}
#endregion Public Constructors
//------------------------------------------------------
//
// Public Properties
//
//-----------------------------------------------------
#region Public Properties
///
/// Property name to sort by.
///
public string PropertyName
{
get { return _propertyName; }
set
{
if (_sealed)
throw new InvalidOperationException(SR.Get(SRID.CannotChangeAfterSealed, "SortDescription"));
_propertyName = value;
}
}
///
/// Sort direction.
///
public ListSortDirection Direction
{
get { return _direction; }
set
{
if (_sealed)
throw new InvalidOperationException(SR.Get(SRID.CannotChangeAfterSealed, "SortDescription"));
if (value < ListSortDirection.Ascending || value > ListSortDirection.Descending)
throw new InvalidEnumArgumentException("value", (int) value, typeof(ListSortDirection));
_direction = value;
}
}
///
/// Returns true if the SortDescription is in use (sealed).
///
public bool IsSealed
{
get { return _sealed; }
}
#endregion Public Properties
//------------------------------------------------------
//
// Public methods
//
//------------------------------------------------------
#region Public Methods
/// Override of Object.Equals
public override bool Equals(object obj)
{
return (obj is SortDescription) ? (this == (SortDescription)obj) : false;
}
/// Equality operator for SortDescription.
public static bool operator==(SortDescription sd1, SortDescription sd2)
{
return sd1.PropertyName == sd2.PropertyName &&
sd1.Direction == sd2.Direction;
}
/// Inequality operator for SortDescription.
public static bool operator!=(SortDescription sd1, SortDescription sd2)
{
return !(sd1 == sd2);
}
/// Override of Object.GetHashCode
public override int GetHashCode()
{
int result = Direction.GetHashCode();
if (PropertyName != null)
{
result = unchecked(PropertyName.GetHashCode() + result);
}
return result;
}
#endregion Public Methods
//-----------------------------------------------------
//
// Internal methods
//
//------------------------------------------------------
#region Internal Methods
internal void Seal()
{
_sealed = true;
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
private string _propertyName;
private ListSortDirection _direction;
bool _sealed;
#endregion Private Fields
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolStripCodeDomSerializer.cs
- HttpApplicationStateWrapper.cs
- BamlReader.cs
- unsafenativemethodstextservices.cs
- CollectionDataContract.cs
- Filter.cs
- XmlSchemaDocumentation.cs
- GrammarBuilderWildcard.cs
- TimeoutValidationAttribute.cs
- AspCompat.cs
- SafeArchiveContext.cs
- AdapterDictionary.cs
- ToolBarButtonClickEvent.cs
- Int32Converter.cs
- ForEachAction.cs
- MouseBinding.cs
- PagesSection.cs
- LogicalChannelCollection.cs
- GeometryDrawing.cs
- HttpListenerRequest.cs
- RenderDataDrawingContext.cs
- ZeroOpNode.cs
- ReceiveSecurityHeaderEntry.cs
- RequestResizeEvent.cs
- TdsParserHelperClasses.cs
- Decoder.cs
- SiteMapProvider.cs
- DefaultMemberAttribute.cs
- recordstatescratchpad.cs
- EmptyStringExpandableObjectConverter.cs
- NetworkCredential.cs
- Color.cs
- XmlToDatasetMap.cs
- CustomActivityDesigner.cs
- Message.cs
- ReadOnlyCollectionBase.cs
- XmlParserContext.cs
- GridViewPageEventArgs.cs
- SqlInternalConnectionTds.cs
- ContextMenuService.cs
- BufferedWebEventProvider.cs
- UrlAuthorizationModule.cs
- StaticFileHandler.cs
- DataControlFieldCollection.cs
- XPathBuilder.cs
- HttpServerVarsCollection.cs
- TextSelection.cs
- DataGridSortCommandEventArgs.cs
- PageFunction.cs
- InternalDuplexBindingElement.cs
- ListParagraph.cs
- DeliveryRequirementsAttribute.cs
- MarginCollapsingState.cs
- XamlSerializerUtil.cs
- UnaryExpression.cs
- HeaderUtility.cs
- InstanceDataCollection.cs
- ConfigurationElement.cs
- DataGridViewSortCompareEventArgs.cs
- SqlDataSourceCommandEventArgs.cs
- AutoGeneratedField.cs
- ContentElementAutomationPeer.cs
- EventHandlers.cs
- DoWorkEventArgs.cs
- FixUp.cs
- OutputScope.cs
- TextProperties.cs
- TextEditorTyping.cs
- Style.cs
- ModuleBuilder.cs
- BamlRecordReader.cs
- ScrollPattern.cs
- ButtonColumn.cs
- RuleInfoComparer.cs
- ProxyGenerator.cs
- Point3D.cs
- Camera.cs
- WebPartEditorOkVerb.cs
- ControlCollection.cs
- DataGridViewTextBoxEditingControl.cs
- CacheModeConverter.cs
- RepeatInfo.cs
- IDataContractSurrogate.cs
- updateconfighost.cs
- Permission.cs
- EntityKeyElement.cs
- PropertyPathWorker.cs
- StickyNote.cs
- formatter.cs
- GridViewUpdateEventArgs.cs
- WindowShowOrOpenTracker.cs
- TransactionValidationBehavior.cs
- DrawingState.cs
- BindingMemberInfo.cs
- FrameworkReadOnlyPropertyMetadata.cs
- UnsignedPublishLicense.cs
- InputQueue.cs
- XhtmlBasicTextBoxAdapter.cs
- LongTypeConverter.cs
- ColumnResizeUndoUnit.cs