Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / MS / Internal / Data / XmlNodeComparer.cs / 1 / 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 = XmlHelper.SelectStringValue(node1, _sortParameters[k].PropertyName, _namespaceManager); string valueY = XmlHelper.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. //---------------------------------------------------------------------------- // //// 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 = XmlHelper.SelectStringValue(node1, _sortParameters[k].PropertyName, _namespaceManager); string valueY = XmlHelper.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
- SchemaTableOptionalColumn.cs
- Paragraph.cs
- WebControlParameterProxy.cs
- ByValueEqualityComparer.cs
- Viewport3DAutomationPeer.cs
- BasePattern.cs
- InstanceOwner.cs
- OpCopier.cs
- ZipIOFileItemStream.cs
- AgileSafeNativeMemoryHandle.cs
- _ConnectStream.cs
- Rectangle.cs
- EventKeyword.cs
- HtmlTableCellCollection.cs
- ObjectIDGenerator.cs
- LogExtentCollection.cs
- Separator.cs
- OleDbParameter.cs
- ReachDocumentPageSerializer.cs
- HMACSHA512.cs
- BamlResourceDeserializer.cs
- PointAnimationUsingKeyFrames.cs
- CodeRemoveEventStatement.cs
- ReaderContextStackData.cs
- DbConnectionPoolGroupProviderInfo.cs
- UnsafePeerToPeerMethods.cs
- ProfileEventArgs.cs
- AbstractSvcMapFileLoader.cs
- BoolLiteral.cs
- AspNetPartialTrustHelpers.cs
- XmlSchemaAny.cs
- IIS7WorkerRequest.cs
- IndexedGlyphRun.cs
- AnnotationComponentChooser.cs
- SoundPlayer.cs
- LayoutDump.cs
- MenuAutomationPeer.cs
- HMACSHA512.cs
- MemberMaps.cs
- MarshalByValueComponent.cs
- TextTabProperties.cs
- MULTI_QI.cs
- ITreeGenerator.cs
- Matrix3DConverter.cs
- MatrixTransform.cs
- NativeMethods.cs
- FlowDocument.cs
- BindingList.cs
- IndicFontClient.cs
- CompiledRegexRunnerFactory.cs
- HttpModuleActionCollection.cs
- _BasicClient.cs
- UnsafeNativeMethods.cs
- BaseParaClient.cs
- TreeViewHitTestInfo.cs
- WebBrowserBase.cs
- RunClient.cs
- MessageAction.cs
- StringArrayConverter.cs
- WSUtilitySpecificationVersion.cs
- FamilyMapCollection.cs
- BufferedWebEventProvider.cs
- Cell.cs
- _NestedSingleAsyncResult.cs
- Html32TextWriter.cs
- oledbmetadatacolumnnames.cs
- ListViewCancelEventArgs.cs
- SafeRightsManagementQueryHandle.cs
- MetadataExporter.cs
- FontFamilyIdentifier.cs
- DesignerWithHeader.cs
- HtmlValidatorAdapter.cs
- StrokeNodeEnumerator.cs
- CategoryGridEntry.cs
- TypeFieldSchema.cs
- TraceLog.cs
- SyntaxCheck.cs
- MetadataArtifactLoaderFile.cs
- XmlQueryOutput.cs
- SyndicationDeserializer.cs
- LOSFormatter.cs
- CodeCatchClauseCollection.cs
- PerformanceCountersElement.cs
- DifferencingCollection.cs
- AVElementHelper.cs
- SiteMapNodeCollection.cs
- Focus.cs
- VisualTarget.cs
- PlatformCulture.cs
- CompilationUtil.cs
- ArglessEventHandlerProxy.cs
- LicFileLicenseProvider.cs
- PageStatePersister.cs
- AsymmetricAlgorithm.cs
- NullReferenceException.cs
- LocationUpdates.cs
- HebrewNumber.cs
- Screen.cs
- StdValidatorsAndConverters.cs
- Icon.cs