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
- TypeDelegator.cs
- JulianCalendar.cs
- SignerInfo.cs
- PointValueSerializer.cs
- SystemUnicastIPAddressInformation.cs
- TreeNodeCollectionEditor.cs
- DisplayNameAttribute.cs
- RSAPKCS1SignatureFormatter.cs
- StringStorage.cs
- ResourceProviderFactory.cs
- MsmqReceiveHelper.cs
- ListControlConvertEventArgs.cs
- CompressEmulationStream.cs
- CompilerLocalReference.cs
- DataGridViewImageColumn.cs
- EngineSite.cs
- BitmapEffectGroup.cs
- ExtractorMetadata.cs
- FlowThrottle.cs
- MethodAccessException.cs
- GridProviderWrapper.cs
- SessionEndedEventArgs.cs
- FullTextState.cs
- RelationalExpressions.cs
- DataViewSetting.cs
- ResourcesChangeInfo.cs
- Tracer.cs
- LabelAutomationPeer.cs
- DataGridColumn.cs
- panel.cs
- PathSegment.cs
- ApplicationHost.cs
- InstanceLockLostException.cs
- FileVersion.cs
- ConditionCollection.cs
- LayoutTableCell.cs
- RuntimeConfigLKG.cs
- Bitmap.cs
- AuthenticationConfig.cs
- PnrpPermission.cs
- DetailsViewCommandEventArgs.cs
- CFStream.cs
- OdbcUtils.cs
- DataGridLength.cs
- ConstraintStruct.cs
- ConfigurationHelpers.cs
- HttpWriter.cs
- IntranetCredentialPolicy.cs
- RtfControlWordInfo.cs
- MachinePropertyVariants.cs
- InheritanceContextChangedEventManager.cs
- CodeBlockBuilder.cs
- DiscardableAttribute.cs
- FloaterBaseParaClient.cs
- webclient.cs
- ArgumentException.cs
- OperandQuery.cs
- FrameDimension.cs
- ScrollProviderWrapper.cs
- ActivityTypeDesigner.xaml.cs
- ResourceExpressionBuilder.cs
- TextProperties.cs
- ConstantProjectedSlot.cs
- EventData.cs
- Duration.cs
- NetMsmqSecurityMode.cs
- SHA256.cs
- WorkflowServiceHostFactory.cs
- ReadOnlyDictionary.cs
- CollectionChangedEventManager.cs
- Point3DKeyFrameCollection.cs
- Merger.cs
- DependencyStoreSurrogate.cs
- BoolExpressionVisitors.cs
- RuntimeCompatibilityAttribute.cs
- ItemCollection.cs
- PhysicalFontFamily.cs
- RawStylusInputReport.cs
- StrokeIntersection.cs
- AddInAttribute.cs
- SafeArrayRankMismatchException.cs
- HtmlInputControl.cs
- GridViewDeletedEventArgs.cs
- ReadContentAsBinaryHelper.cs
- InputReportEventArgs.cs
- IdentityVerifier.cs
- CacheHelper.cs
- NavigationProgressEventArgs.cs
- SystemIPv6InterfaceProperties.cs
- VisemeEventArgs.cs
- DirectionalLight.cs
- ContractUtils.cs
- Document.cs
- ConnectionsZone.cs
- BinaryEditor.cs
- CreateUserWizard.cs
- GroupBoxAutomationPeer.cs
- AnnotationHelper.cs
- MouseWheelEventArgs.cs
- ConfigurationSectionCollection.cs