Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // //// 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
- BoundConstants.cs
- WebBrowserNavigatedEventHandler.cs
- TypeConverterHelper.cs
- ConfigPathUtility.cs
- CompiledXpathExpr.cs
- WCFServiceClientProxyGenerator.cs
- TextServicesCompartment.cs
- _LoggingObject.cs
- DataContext.cs
- DesignerWebPartChrome.cs
- XmlDataCollection.cs
- LeaseManager.cs
- ConnectionProviderAttribute.cs
- XMLSchema.cs
- LiteralSubsegment.cs
- AutoScrollExpandMessageFilter.cs
- SymmetricCryptoHandle.cs
- Hex.cs
- HostProtectionException.cs
- ListenerElementsCollection.cs
- EmbeddedMailObjectsCollection.cs
- OutputScopeManager.cs
- SQLCharsStorage.cs
- MappingMetadataHelper.cs
- Baml6Assembly.cs
- ListViewItemMouseHoverEvent.cs
- AllMembershipCondition.cs
- NativeMethods.cs
- InternalEnumValidatorAttribute.cs
- ExclusiveTcpListener.cs
- EntityViewGenerationConstants.cs
- BoundingRectTracker.cs
- LexicalChunk.cs
- ZipPackage.cs
- DynamicArgumentDialog.cs
- BindingGroup.cs
- OdbcConnectionStringbuilder.cs
- BreakSafeBase.cs
- SelectionRangeConverter.cs
- XmlSchemaSimpleContent.cs
- CodeTypeMemberCollection.cs
- LayoutDump.cs
- WebRequestModuleElementCollection.cs
- WebCategoryAttribute.cs
- TabletDeviceInfo.cs
- HttpBrowserCapabilitiesWrapper.cs
- FunctionParameter.cs
- storagemappingitemcollection.viewdictionary.cs
- Int32Rect.cs
- Stylesheet.cs
- DrawingGroupDrawingContext.cs
- tabpagecollectioneditor.cs
- GeometryHitTestParameters.cs
- SmtpSection.cs
- Literal.cs
- MetadataCache.cs
- XPathNodeHelper.cs
- RtfControlWordInfo.cs
- PngBitmapDecoder.cs
- FileDocument.cs
- DynamicValueConverter.cs
- MessageDescriptionCollection.cs
- WizardPanel.cs
- SoapTypeAttribute.cs
- Scripts.cs
- PropertyEmitter.cs
- DiagnosticsConfigurationHandler.cs
- ExpressionLexer.cs
- DocumentNUp.cs
- DirectoryLocalQuery.cs
- AutoSizeComboBox.cs
- AnonymousIdentificationModule.cs
- LineProperties.cs
- Compiler.cs
- ImageConverter.cs
- ModuleBuilder.cs
- KeyValuePair.cs
- TableParagraph.cs
- HwndHost.cs
- DebugControllerThread.cs
- DataGridViewRow.cs
- GC.cs
- BuildProvider.cs
- PlacementWorkspace.cs
- bidPrivateBase.cs
- MoveSizeWinEventHandler.cs
- StrongNameKeyPair.cs
- ViewCellSlot.cs
- Automation.cs
- PeerCollaborationPermission.cs
- InlineCollection.cs
- PropertyChangedEventManager.cs
- CompilerInfo.cs
- InvalidDataContractException.cs
- ExternalFile.cs
- SeekStoryboard.cs
- CodeSnippetExpression.cs
- URLAttribute.cs
- WorkflowInstanceProvider.cs
- Image.cs