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
- ValidationPropertyAttribute.cs
- NameTable.cs
- XmlSchemaObjectCollection.cs
- XLinq.cs
- HeaderCollection.cs
- WebPartDisplayMode.cs
- KeyEvent.cs
- Typeface.cs
- TCEAdapterGenerator.cs
- WmlCalendarAdapter.cs
- Pen.cs
- DeferredElementTreeState.cs
- RegexRunner.cs
- DbModificationCommandTree.cs
- TriState.cs
- NavigationProgressEventArgs.cs
- WebPartVerb.cs
- ProviderConnectionPoint.cs
- grammarelement.cs
- DataGridItemCollection.cs
- DataGridViewImageCell.cs
- RuleProcessor.cs
- WindowsToolbarAsMenu.cs
- ReverseQueryOperator.cs
- HandledMouseEvent.cs
- Msec.cs
- SqlDataSourceFilteringEventArgs.cs
- ProgressChangedEventArgs.cs
- TemplateParser.cs
- DataGridBoolColumn.cs
- SQLDouble.cs
- AttributeQuery.cs
- XmlDataSource.cs
- DragEvent.cs
- ListViewCancelEventArgs.cs
- DataGridTable.cs
- HelpProvider.cs
- IInstanceTable.cs
- EncodingDataItem.cs
- DtrList.cs
- GenericAuthenticationEventArgs.cs
- HtmlLink.cs
- BulletDecorator.cs
- SubMenuStyleCollection.cs
- QueryStatement.cs
- JapaneseLunisolarCalendar.cs
- WSMessageEncoding.cs
- HtmlShim.cs
- WrapperEqualityComparer.cs
- GridErrorDlg.cs
- ProtocolsConfigurationEntry.cs
- DataTableReader.cs
- ObjectDisposedException.cs
- DrawingAttributesDefaultValueFactory.cs
- WizardPanelChangingEventArgs.cs
- Int64KeyFrameCollection.cs
- IsolatedStorageFileStream.cs
- Suspend.cs
- PropertyReferenceExtension.cs
- IPAddressCollection.cs
- ToolboxItemSnapLineBehavior.cs
- Binding.cs
- AuthenticationServiceManager.cs
- SQLBoolean.cs
- LockCookie.cs
- WorkflowDesignerColors.cs
- GZipStream.cs
- ApplicationProxyInternal.cs
- VisualTarget.cs
- SystemEvents.cs
- CompositeScriptReferenceEventArgs.cs
- TabControlDesigner.cs
- ExpressionContext.cs
- WebEventTraceProvider.cs
- SettingsAttributes.cs
- ErrorEventArgs.cs
- ToolStripDropDownButton.cs
- ActivityAction.cs
- RepeatBehavior.cs
- _Rfc2616CacheValidators.cs
- DataGridBoolColumn.cs
- FlowDocumentPaginator.cs
- XmlSchemaComplexType.cs
- DbParameterCollection.cs
- MemoryMappedFile.cs
- LocalIdKeyIdentifierClause.cs
- AutomationElementIdentifiers.cs
- ExtentJoinTreeNode.cs
- MembershipSection.cs
- WebBrowserDesigner.cs
- Utils.cs
- ListBindableAttribute.cs
- UrlPath.cs
- ListViewItemCollectionEditor.cs
- ImageAnimator.cs
- QualificationDataItem.cs
- DragStartedEventArgs.cs
- StructuredTypeEmitter.cs
- IgnoreSectionHandler.cs
- TreeNodeBinding.cs