Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Data / XmlNodeComparer.cs / 1305600 / XmlNodeComparer.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: Defines XmlNodeComparer object, used to sort a view of data produced by an XmlDataSource.
//
// Specs: http://avalon/connecteddata/M5%20Specs/UIBinding.mht
//
//---------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Xml;
using MS.Internal.Data;
namespace MS.Internal.Data
{
///
/// The XmlNodeComparer is used to sort a view of data produced by an XmlDataSource.
///
internal class XmlNodeComparer : IComparer
{
///
/// Constructor.
///
/// array of sort parameters
/// namespace manager, to control queries
/// culture to use for comparisons
internal XmlNodeComparer(SortDescriptionCollection sortParameters, XmlNamespaceManager namespaceManager, CultureInfo culture)
{
_sortParameters = sortParameters;
_namespaceManager = namespaceManager;
_culture = (culture == null) ? CultureInfo.InvariantCulture : culture;
}
int IComparer.Compare(object o1, object o2)
{
int result = 0;
XmlNode node1 = o1 as XmlNode;
XmlNode node2 = o2 as XmlNode;
if (node1 == null)
return -1;
if (node2 == null)
return +1;
for (int k = 0; k < _sortParameters.Count; ++k)
{
string valueX = AssemblyHelper.SelectStringValue(node1, _sortParameters[k].PropertyName, _namespaceManager);
string valueY = AssemblyHelper.SelectStringValue(node2, _sortParameters[k].PropertyName, _namespaceManager);
result = String.Compare(valueX, valueY, false, _culture);
if (_sortParameters[k].Direction == ListSortDirection.Descending)
result = -result;
if (result != 0)
break;
}
return result;
}
private SortDescriptionCollection _sortParameters;
private XmlNamespaceManager _namespaceManager;
CultureInfo _culture;
}
}
// 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
- EventMappingSettingsCollection.cs
- webproxy.cs
- IconConverter.cs
- XPathNodeList.cs
- BreakRecordTable.cs
- DataGridViewCellStyleConverter.cs
- IisTraceWebEventProvider.cs
- ListBindingConverter.cs
- ScaleTransform3D.cs
- DataObjectPastingEventArgs.cs
- BaseTreeIterator.cs
- RenderCapability.cs
- XmlException.cs
- TreeViewImageKeyConverter.cs
- MultilineStringConverter.cs
- CommandBindingCollection.cs
- TextParagraphView.cs
- ButtonPopupAdapter.cs
- ActivationServices.cs
- KnownAssemblyEntry.cs
- RSAPKCS1SignatureFormatter.cs
- FunctionCommandText.cs
- SHA256.cs
- OverlappedAsyncResult.cs
- HtmlSelect.cs
- WebBrowserHelper.cs
- DataTableMapping.cs
- RepeatInfo.cs
- TextRenderer.cs
- HostedImpersonationContext.cs
- WindowsTokenRoleProvider.cs
- Point3DCollectionValueSerializer.cs
- PageStatePersister.cs
- RemoteCryptoSignHashRequest.cs
- RecipientInfo.cs
- Matrix.cs
- Pair.cs
- RegexNode.cs
- Gdiplus.cs
- LicenseException.cs
- PropertyRef.cs
- BmpBitmapEncoder.cs
- LambdaCompiler.Unary.cs
- DifferencingCollection.cs
- QueryStringHandler.cs
- XmlLoader.cs
- PnrpPeerResolverElement.cs
- TreeNodeStyle.cs
- Stack.cs
- TextRangeEditTables.cs
- ContentPosition.cs
- HelloOperationCD1AsyncResult.cs
- ScalarType.cs
- DbProviderFactory.cs
- Help.cs
- SkinBuilder.cs
- IISUnsafeMethods.cs
- __Filters.cs
- BidOverLoads.cs
- Rotation3D.cs
- SystemPens.cs
- VerificationAttribute.cs
- ErrorStyle.cs
- DefaultTextStoreTextComposition.cs
- DataGridItemEventArgs.cs
- WinOEToolBoxItem.cs
- HttpHandlerAction.cs
- MultiSelectRootGridEntry.cs
- Misc.cs
- BaseContextMenu.cs
- DateTimeValueSerializer.cs
- SemaphoreSlim.cs
- EUCJPEncoding.cs
- TransformGroup.cs
- HMACSHA384.cs
- UnionExpr.cs
- Control.cs
- RelatedImageListAttribute.cs
- EmbeddedMailObjectsCollection.cs
- SchemaElementDecl.cs
- UriSectionData.cs
- OneOfElement.cs
- RelationshipManager.cs
- invalidudtexception.cs
- BamlTreeMap.cs
- IndexedString.cs
- SqlUserDefinedTypeAttribute.cs
- IChannel.cs
- SqlCachedBuffer.cs
- TransactionsSectionGroup.cs
- HeaderCollection.cs
- DataRowChangeEvent.cs
- PeerDefaultCustomResolverClient.cs
- XsltException.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- ScriptingScriptResourceHandlerSection.cs
- AssemblyBuilder.cs
- Renderer.cs
- DebugManager.cs
- Validator.cs