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
- CombinedGeometry.cs
- SchemaNotation.cs
- SendMailErrorEventArgs.cs
- NonClientArea.cs
- FontStretchConverter.cs
- ReflectPropertyDescriptor.cs
- SchemaNamespaceManager.cs
- EncoderBestFitFallback.cs
- IntAverageAggregationOperator.cs
- OletxEnlistment.cs
- XmlIncludeAttribute.cs
- ISO2022Encoding.cs
- DataGridViewLayoutData.cs
- ConfigurationStrings.cs
- Composition.cs
- CodeNamespaceCollection.cs
- DoubleAverageAggregationOperator.cs
- EntityUtil.cs
- DataGridViewAdvancedBorderStyle.cs
- FormViewCommandEventArgs.cs
- KeyInstance.cs
- FrameworkRichTextComposition.cs
- TemplatedMailWebEventProvider.cs
- tibetanshape.cs
- EventLogPropertySelector.cs
- HttpProfileGroupBase.cs
- WebPartCollection.cs
- EventManager.cs
- DataFormat.cs
- EntityDataSourceConfigureObjectContext.cs
- StorageAssociationTypeMapping.cs
- Expression.cs
- CryptoConfig.cs
- TextContainerChangedEventArgs.cs
- CreateUserErrorEventArgs.cs
- ExpressionStringBuilder.cs
- SQLDecimal.cs
- MultiPageTextView.cs
- InvalidPrinterException.cs
- ByteStreamGeometryContext.cs
- MultiSelector.cs
- BufferedStream.cs
- FlowDocumentFormatter.cs
- UrlMappingsModule.cs
- AttributeProviderAttribute.cs
- HtmlTableCellCollection.cs
- PolyLineSegment.cs
- DateTimeConverter2.cs
- EmissiveMaterial.cs
- HttpProfileBase.cs
- CheckBoxField.cs
- _BasicClient.cs
- UnsafeNativeMethods.cs
- TabItemAutomationPeer.cs
- FixedDocumentSequencePaginator.cs
- JsonFormatReaderGenerator.cs
- HttpCacheVaryByContentEncodings.cs
- RIPEMD160Managed.cs
- SerializableAttribute.cs
- Vector3DValueSerializer.cs
- GenericRootAutomationPeer.cs
- Expression.DebuggerProxy.cs
- TableProviderWrapper.cs
- ReadOnlyNameValueCollection.cs
- DtrList.cs
- UpdatePanelTrigger.cs
- StaticExtension.cs
- ResolveNameEventArgs.cs
- WebPartManagerInternals.cs
- Substitution.cs
- MulticastNotSupportedException.cs
- UnsafeNetInfoNativeMethods.cs
- WebServiceTypeData.cs
- InkSerializer.cs
- StyleXamlParser.cs
- NameNode.cs
- Utility.cs
- FileSystemEnumerable.cs
- ToolStripLabel.cs
- OrderPreservingPipeliningMergeHelper.cs
- GatewayDefinition.cs
- NameTable.cs
- RayHitTestParameters.cs
- Variable.cs
- Geometry3D.cs
- PersonalizationStateInfoCollection.cs
- AssociationEndMember.cs
- ServiceContractGenerationContext.cs
- ProvidersHelper.cs
- HttpListenerRequest.cs
- ValueExpressions.cs
- UrlMapping.cs
- OperationResponse.cs
- RTLAwareMessageBox.cs
- ExportFileRequest.cs
- COM2PictureConverter.cs
- WebPartZone.cs
- Delegate.cs
- ECDiffieHellman.cs
- ReplacementText.cs