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
- ApplicationDirectory.cs
- SqlNodeTypeOperators.cs
- InternalPolicyElement.cs
- XamlFigureLengthSerializer.cs
- TCEAdapterGenerator.cs
- ContractMethodInfo.cs
- DataFormat.cs
- EnlistmentTraceIdentifier.cs
- DictionaryContent.cs
- XmlCustomFormatter.cs
- CacheChildrenQuery.cs
- CompositionAdorner.cs
- PrimitiveXmlSerializers.cs
- PropertyValueChangedEvent.cs
- AmbientProperties.cs
- StreamGeometryContext.cs
- COM2PictureConverter.cs
- TextTrailingWordEllipsis.cs
- ProcessThreadCollection.cs
- XmlUtil.cs
- ISAPIApplicationHost.cs
- _SSPISessionCache.cs
- GeometryDrawing.cs
- LocalizationComments.cs
- Hex.cs
- TimersDescriptionAttribute.cs
- IIS7WorkerRequest.cs
- ContainerAction.cs
- ParallelLoopState.cs
- EntityDataSourceWrapperCollection.cs
- MimeFormatExtensions.cs
- typedescriptorpermissionattribute.cs
- Propagator.Evaluator.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- XamlParser.cs
- HostProtectionPermission.cs
- DocumentViewerAutomationPeer.cs
- RadioButtonPopupAdapter.cs
- BitmapEffectvisualstate.cs
- XPathItem.cs
- DoubleLink.cs
- Component.cs
- EventSinkActivityDesigner.cs
- ProfileSettings.cs
- BaseWebProxyFinder.cs
- SettingsSection.cs
- Int32EqualityComparer.cs
- TypeValidationEventArgs.cs
- Stylus.cs
- Win32.cs
- OutputCacheModule.cs
- SignedInfo.cs
- ProcessProtocolHandler.cs
- CorrelationTokenInvalidatedHandler.cs
- SQLDateTime.cs
- SiteMapDataSourceView.cs
- HtmlImageAdapter.cs
- PriorityQueue.cs
- DataGridViewColumnHeaderCell.cs
- DateTimeValueSerializerContext.cs
- SystemTcpConnection.cs
- RemotingServices.cs
- HijriCalendar.cs
- PathFigureCollection.cs
- Nodes.cs
- TextPatternIdentifiers.cs
- SystemResourceKey.cs
- EntityWrapper.cs
- StylusPointCollection.cs
- FormatConvertedBitmap.cs
- XPathEmptyIterator.cs
- Tile.cs
- ProofTokenCryptoHandle.cs
- EventEntry.cs
- PasswordBox.cs
- ByteStreamBufferedMessageData.cs
- Trigger.cs
- InstanceDataCollection.cs
- FixedSOMImage.cs
- Operator.cs
- RequiredFieldValidator.cs
- PropertyEmitter.cs
- RadioButtonFlatAdapter.cs
- SyndicationItem.cs
- _ProxyChain.cs
- ToolStripDropDownClosingEventArgs.cs
- TextDecorationUnitValidation.cs
- HttpClientCertificate.cs
- TextElementEnumerator.cs
- Variable.cs
- BeginEvent.cs
- XMLUtil.cs
- WebPartConnectionsConfigureVerb.cs
- TypedTableBaseExtensions.cs
- TimeSpanOrInfiniteConverter.cs
- KeyMatchBuilder.cs
- Classification.cs
- PrePrepareMethodAttribute.cs
- RuleAttributes.cs
- XPathSingletonIterator.cs