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
- DSGeneratorProblem.cs
- X509AsymmetricSecurityKey.cs
- SplitterPanel.cs
- WindowsListViewItemStartMenu.cs
- SoapCodeExporter.cs
- UnknownWrapper.cs
- AttachmentCollection.cs
- Decorator.cs
- Closure.cs
- XmlSignatureProperties.cs
- DbExpressionVisitor_TResultType.cs
- XmlSchemaObject.cs
- NameScope.cs
- GridViewRowPresenter.cs
- SmiGettersStream.cs
- ConfigurationPropertyCollection.cs
- TraceContext.cs
- StubHelpers.cs
- ControlIdConverter.cs
- WebPartsPersonalizationAuthorization.cs
- UnmanagedMemoryStream.cs
- RolePrincipal.cs
- ScriptManager.cs
- EventOpcode.cs
- NameScopePropertyAttribute.cs
- EntityClientCacheKey.cs
- PropertyFilterAttribute.cs
- BCLDebug.cs
- XmlDesignerDataSourceView.cs
- QueryExpression.cs
- UrlMappingCollection.cs
- Visual3D.cs
- RequestSecurityTokenForGetBrowserToken.cs
- Decoder.cs
- ScrollChrome.cs
- StorageFunctionMapping.cs
- XmlDigitalSignatureProcessor.cs
- InternalPolicyElement.cs
- ScriptComponentDescriptor.cs
- MessageSmuggler.cs
- HebrewCalendar.cs
- OptimizerPatterns.cs
- PkcsUtils.cs
- BidirectionalDictionary.cs
- PersonalizableTypeEntry.cs
- MouseEventArgs.cs
- ArglessEventHandlerProxy.cs
- HttpFileCollectionWrapper.cs
- FindRequestContext.cs
- DoubleAnimationUsingPath.cs
- ComplexType.cs
- SafeLibraryHandle.cs
- CompareInfo.cs
- ElementAction.cs
- WebServiceMethodData.cs
- ContentTextAutomationPeer.cs
- TraceHwndHost.cs
- PointCollectionValueSerializer.cs
- FixedBufferAttribute.cs
- SafePEFileHandle.cs
- MouseButton.cs
- Label.cs
- DesignerSerializationVisibilityAttribute.cs
- NotSupportedException.cs
- QilFactory.cs
- MatrixStack.cs
- HelpProvider.cs
- DataGridViewRowCollection.cs
- CookieProtection.cs
- ListSourceHelper.cs
- ProcessingInstructionAction.cs
- DesignerSerializationOptionsAttribute.cs
- MarkupWriter.cs
- SystemDropShadowChrome.cs
- XmlnsCache.cs
- Operators.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- AmbiguousMatchException.cs
- SyndicationDeserializer.cs
- QueryContinueDragEvent.cs
- PointConverter.cs
- MultiDataTrigger.cs
- WebPartCollection.cs
- BinaryConverter.cs
- SessionPageStatePersister.cs
- ImageCodecInfo.cs
- TemplatePropertyEntry.cs
- Identifier.cs
- MediaTimeline.cs
- ChannelBase.cs
- EtwTrace.cs
- Span.cs
- ColorConverter.cs
- SqlClientWrapperSmiStreamChars.cs
- ControlUtil.cs
- CdpEqualityComparer.cs
- CompiledELinqQueryState.cs
- FileLogRecordEnumerator.cs
- SmtpClient.cs
- RemoteArgument.cs