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
- EmptyStringExpandableObjectConverter.cs
- DurationConverter.cs
- ContentType.cs
- DockPattern.cs
- DecoderExceptionFallback.cs
- PageThemeBuildProvider.cs
- FilterException.cs
- WebCategoryAttribute.cs
- Codec.cs
- _NestedSingleAsyncResult.cs
- OleDbErrorCollection.cs
- Stack.cs
- IncomingWebResponseContext.cs
- SqlUserDefinedAggregateAttribute.cs
- ScriptReferenceBase.cs
- CodeIdentifier.cs
- XmlObjectSerializerContext.cs
- sqlmetadatafactory.cs
- SubMenuStyle.cs
- TextRenderer.cs
- QueryOperator.cs
- StoreConnection.cs
- ProfilePropertyNameValidator.cs
- CapabilitiesState.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- TransformProviderWrapper.cs
- Int16KeyFrameCollection.cs
- PathSegment.cs
- SR.cs
- FunctionUpdateCommand.cs
- ColorMap.cs
- ButtonBaseAdapter.cs
- BigInt.cs
- VectorCollectionConverter.cs
- WindowsBrush.cs
- AdjustableArrowCap.cs
- TreeNode.cs
- FederatedMessageSecurityOverHttp.cs
- NCryptNative.cs
- DatatypeImplementation.cs
- InfoCardArgumentException.cs
- DataControlFieldCollection.cs
- ImageMetadata.cs
- FunctionMappingTranslator.cs
- RegexCompiler.cs
- FocusChangedEventArgs.cs
- EditorZone.cs
- rsa.cs
- Source.cs
- SqlUnionizer.cs
- Itemizer.cs
- LongValidatorAttribute.cs
- GridItemProviderWrapper.cs
- UserInitiatedNavigationPermission.cs
- MachineSettingsSection.cs
- ProcessModelSection.cs
- IsolationInterop.cs
- GeometryGroup.cs
- MultiPageTextView.cs
- RTLAwareMessageBox.cs
- StylusPlugin.cs
- ConfigurationSettings.cs
- SQLMoneyStorage.cs
- SqlRecordBuffer.cs
- GlyphsSerializer.cs
- ADMembershipUser.cs
- InvalidEnumArgumentException.cs
- SelectionEditor.cs
- BoundPropertyEntry.cs
- PreparingEnlistment.cs
- DoubleSumAggregationOperator.cs
- NonDualMessageSecurityOverHttpElement.cs
- FormsAuthenticationUserCollection.cs
- DataSourceCache.cs
- OletxEnlistment.cs
- Crc32.cs
- WebEvents.cs
- AlgoModule.cs
- Version.cs
- RegexCapture.cs
- ColumnResult.cs
- AuthenticationManager.cs
- SHA384.cs
- GB18030Encoding.cs
- RawStylusInputReport.cs
- storepermissionattribute.cs
- BufferModeSettings.cs
- CodeArrayIndexerExpression.cs
- InProcStateClientManager.cs
- TypeGeneratedEventArgs.cs
- Int64.cs
- MulticastOption.cs
- PolyLineSegment.cs
- IFlowDocumentViewer.cs
- UnknownBitmapDecoder.cs
- BooleanSwitch.cs
- MarshalByRefObject.cs
- SerializationStore.cs
- FigureParagraph.cs
- TimerEventSubscriptionCollection.cs