Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / ComponentModel / SortDescription.cs / 1305600 / 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
using MS.Internal.WindowsBase;
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
using MS.Internal.WindowsBase;
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
- BookmarkResumptionRecord.cs
- AutomationTextAttribute.cs
- SmtpNetworkElement.cs
- future.cs
- SystemThemeKey.cs
- ServicePointManager.cs
- EtwTrace.cs
- CapabilitiesRule.cs
- SystemBrushes.cs
- ChannelServices.cs
- DelegatedStream.cs
- ListBindingConverter.cs
- CacheRequest.cs
- HttpStreamXmlDictionaryReader.cs
- XmlName.cs
- EntitySetBaseCollection.cs
- TypeDescriptor.cs
- DataGridViewColumnCollectionEditor.cs
- X509Certificate.cs
- Control.cs
- NativeObjectSecurity.cs
- RegexNode.cs
- basenumberconverter.cs
- CategoryAttribute.cs
- NamedPermissionSet.cs
- ThreadSafeMessageFilterTable.cs
- TypeDependencyAttribute.cs
- CodeTypeMemberCollection.cs
- WebPartConnectionCollection.cs
- MenuRenderer.cs
- MeshGeometry3D.cs
- ScrollChrome.cs
- ToolboxItemWrapper.cs
- DataBinder.cs
- OperatingSystem.cs
- ILGenerator.cs
- WindowsAuthenticationEventArgs.cs
- StringFunctions.cs
- _SSPISessionCache.cs
- IconBitmapDecoder.cs
- StringFunctions.cs
- DoubleConverter.cs
- AuthenticationServiceManager.cs
- EnumerableValidator.cs
- TokenBasedSet.cs
- documentsequencetextview.cs
- ToolStripPanelCell.cs
- CriticalHandle.cs
- XmlSchemaAny.cs
- SettingsAttributes.cs
- DbReferenceCollection.cs
- EventHandlers.cs
- DragCompletedEventArgs.cs
- TextOutput.cs
- TypeToStringValueConverter.cs
- TextDataBindingHandler.cs
- BrowserCapabilitiesCodeGenerator.cs
- StreamGeometry.cs
- DataGridViewRowHeaderCell.cs
- DoubleAnimation.cs
- UserControlCodeDomTreeGenerator.cs
- NamedObject.cs
- EntityDataSourceWizardForm.cs
- Assert.cs
- Propagator.ExtentPlaceholderCreator.cs
- UrlMappingsSection.cs
- IconBitmapDecoder.cs
- ManipulationDeltaEventArgs.cs
- CustomErrorsSection.cs
- Baml2006KeyRecord.cs
- ScriptingRoleServiceSection.cs
- PhysicalFontFamily.cs
- DoubleLink.cs
- UniformGrid.cs
- _BaseOverlappedAsyncResult.cs
- PassportAuthenticationModule.cs
- StateWorkerRequest.cs
- NavigateEvent.cs
- PropertyGeneratedEventArgs.cs
- TypeForwardedToAttribute.cs
- AttachmentCollection.cs
- Tag.cs
- ObjectDisposedException.cs
- DataList.cs
- IconConverter.cs
- PageParserFilter.cs
- XmlFormatReaderGenerator.cs
- FixedTextSelectionProcessor.cs
- UriExt.cs
- TreeNodeMouseHoverEvent.cs
- AspNetSynchronizationContext.cs
- GenericWebPart.cs
- DocumentViewerConstants.cs
- WebServiceData.cs
- IteratorDescriptor.cs
- RelatedImageListAttribute.cs
- PictureBox.cs
- OdbcParameterCollection.cs
- TreeNodeBinding.cs
- WindowsListViewGroupHelper.cs