Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Point3DCollection.cs
- DataRowView.cs
- NavigationCommands.cs
- ImpersonationContext.cs
- FixedSOMLineRanges.cs
- CodeNamespaceImport.cs
- WorkflowMarkupSerializationProvider.cs
- AssemblyAssociatedContentFileAttribute.cs
- ComponentSerializationService.cs
- InfoCardTraceRecord.cs
- VisualBasicSettingsConverter.cs
- ClientEventManager.cs
- XslCompiledTransform.cs
- VectorKeyFrameCollection.cs
- ActivitiesCollection.cs
- WebPartManager.cs
- NativeMethods.cs
- WebBaseEventKeyComparer.cs
- DBParameter.cs
- MonikerHelper.cs
- ContentHostHelper.cs
- ScrollChrome.cs
- Normalization.cs
- InternalConfigSettingsFactory.cs
- LogicalExpr.cs
- DataBoundControlHelper.cs
- ConfigurationElementCollection.cs
- References.cs
- MenuItemStyleCollection.cs
- DataGridItemCollection.cs
- RadioButtonList.cs
- LayoutEvent.cs
- DependencyPropertyChangedEventArgs.cs
- ToolZone.cs
- PropertyDescriptorCollection.cs
- ListItemConverter.cs
- SystemWebCachingSectionGroup.cs
- TreeViewItemAutomationPeer.cs
- DataGridViewTextBoxEditingControl.cs
- SchemaAttDef.cs
- RelationshipFixer.cs
- TemplateInstanceAttribute.cs
- DefaultBinder.cs
- TableCellCollection.cs
- CacheForPrimitiveTypes.cs
- XmlSchemaImport.cs
- ComponentManagerBroker.cs
- ParameterBuilder.cs
- MessageSmuggler.cs
- CodeNamespaceImportCollection.cs
- PermissionSet.cs
- Perspective.cs
- BaseDataListComponentEditor.cs
- ObjectDataSourceEventArgs.cs
- SelectionItemProviderWrapper.cs
- InlineCollection.cs
- IdlingCommunicationPool.cs
- Baml2006KeyRecord.cs
- ToolboxDataAttribute.cs
- ReadOnlyKeyedCollection.cs
- ButtonBase.cs
- ListParaClient.cs
- MarkupCompilePass1.cs
- MonitorWrapper.cs
- PageRequestManager.cs
- WorkflowTimerService.cs
- EditingMode.cs
- CryptoKeySecurity.cs
- SqlTriggerContext.cs
- HttpChannelBindingToken.cs
- DecimalAnimationUsingKeyFrames.cs
- SerializationException.cs
- PartBasedPackageProperties.cs
- SafeProcessHandle.cs
- ObjectTypeMapping.cs
- SimpleHandlerBuildProvider.cs
- ColumnProvider.cs
- XmlConvert.cs
- AssemblyInfo.cs
- lengthconverter.cs
- XmlAnyAttributeAttribute.cs
- PeerContact.cs
- RawStylusSystemGestureInputReport.cs
- SerializationHelper.cs
- IconConverter.cs
- OleDbEnumerator.cs
- DataGridTextColumn.cs
- SqlErrorCollection.cs
- SqlDependency.cs
- StartFileNameEditor.cs
- WebRequest.cs
- SystemIPv4InterfaceProperties.cs
- Int32Storage.cs
- DispatchChannelSink.cs
- ChildChangedEventArgs.cs
- QueryCreatedEventArgs.cs
- XmlUtilWriter.cs
- FormViewDeletedEventArgs.cs
- MenuItem.cs
- HostingPreferredMapPath.cs