Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Data / CollectionViewProxy.cs / 1 / CollectionViewProxy.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// See spec at [....]/connecteddata/Specs/CollectionView.mht
//
// Description: Proxy that adds context affinity to an ICollectionView that
// doesn't already have it.
//
//---------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Threading;
using System.Windows.Data;
namespace MS.Internal.Data
{
///
/// Proxy view, used to interpose between the UI and a view that doesn't
/// support context affinity.
///
internal class CollectionViewProxy : CollectionView
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
internal CollectionViewProxy(ICollectionView view)
: base(view.SourceCollection, false)
{
_view = view;
view.CollectionChanged += new NotifyCollectionChangedEventHandler(_OnViewChanged);
view.CurrentChanging += new CurrentChangingEventHandler(_OnCurrentChanging);
view.CurrentChanged += new EventHandler(_OnCurrentChanged);
INotifyPropertyChanged ipc = view as INotifyPropertyChanged;
if (ipc != null)
ipc.PropertyChanged += new PropertyChangedEventHandler(_OnPropertyChanged);
}
//------------------------------------------------------
//
// Interfaces
//
//-----------------------------------------------------
#region ICollectionView
///
/// Culture to use during sorting.
///
public override System.Globalization.CultureInfo Culture
{
get { return ProxiedView.Culture; }
set { ProxiedView.Culture = value; }
}
///
/// Return true if the item belongs to this view. No assumptions are
/// made about the item. This method will behave similarly to IList.Contains().
/// If the caller knows that the item belongs to the
/// underlying collection, it is more efficient to call PassesFilter.
///
public override bool Contains(object item)
{
return ProxiedView.Contains(item);
}
///
/// SourceCollection is the original un-filtered collection of which
/// this ICollectionView is a view.
///
public override IEnumerable SourceCollection
{
get { return base.SourceCollection; }
}
///
/// Set/get a filter callback to filter out items in collection.
/// This property will always accept a filter, but the collection view for the
/// underlying InnerList or ItemsSource may not actually support filtering.
/// Please check
///
///
/// Collections assigned to ItemsSource may not support filtering and could throw a NotSupportedException.
/// Use property to test if sorting is supported before adding
/// to SortDescriptions.
///
public override Predicate
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ChannelBinding.cs
- TemplateContentLoader.cs
- BitmapPalettes.cs
- CommandTreeTypeHelper.cs
- StaticFileHandler.cs
- XmlSchemaDocumentation.cs
- GeneratedView.cs
- ProxyWebPart.cs
- FormView.cs
- DisplayToken.cs
- TextParentUndoUnit.cs
- BaseAutoFormat.cs
- ConnectionManagementElementCollection.cs
- RegexWriter.cs
- CompletedAsyncResult.cs
- HuffCodec.cs
- UniqueIdentifierService.cs
- DataSetMappper.cs
- WebPartConnectionsConnectVerb.cs
- FlowDocument.cs
- ResourceManager.cs
- ObjectStateEntry.cs
- TextDecorationLocationValidation.cs
- HtmlString.cs
- HorizontalAlignConverter.cs
- PaintEvent.cs
- SharedPersonalizationStateInfo.cs
- RuntimeWrappedException.cs
- DiscoveryClientDuplexChannel.cs
- HtmlGenericControl.cs
- RawUIStateInputReport.cs
- X509Certificate.cs
- VirtualizedCellInfoCollection.cs
- KeyInterop.cs
- CacheMode.cs
- MdImport.cs
- LocalizabilityAttribute.cs
- LabelLiteral.cs
- AppDomainGrammarProxy.cs
- SystemIcmpV4Statistics.cs
- ClockGroup.cs
- FontFamilyIdentifier.cs
- AlphabetConverter.cs
- FlowLayout.cs
- MorphHelper.cs
- RepeaterItemCollection.cs
- CustomAttributeSerializer.cs
- __Error.cs
- PropagatorResult.cs
- ManualResetEvent.cs
- SamlAuthorityBinding.cs
- TypeExtensions.cs
- ListViewDeletedEventArgs.cs
- Decimal.cs
- WorkItem.cs
- PartialList.cs
- MetadataArtifactLoaderCompositeResource.cs
- SendingRequestEventArgs.cs
- SymbolMethod.cs
- ReliableOutputConnection.cs
- ACL.cs
- FirstMatchCodeGroup.cs
- TextFormatterContext.cs
- EntityDataSourceWizardForm.cs
- FocusManager.cs
- DataGridViewColumnConverter.cs
- JsonFormatGeneratorStatics.cs
- CompilationSection.cs
- RedistVersionInfo.cs
- StylusButtonEventArgs.cs
- SpanIndex.cs
- ChannelServices.cs
- OciHandle.cs
- PackageDigitalSignature.cs
- WebMessageEncodingElement.cs
- EventLog.cs
- EntryIndex.cs
- FullTextBreakpoint.cs
- NegotiateStream.cs
- WebPartTransformerCollection.cs
- ControlPropertyNameConverter.cs
- StringToken.cs
- EventArgs.cs
- ExternalFile.cs
- ConditionedDesigner.cs
- Solver.cs
- recordstate.cs
- VisualTreeUtils.cs
- MailMessage.cs
- LoginName.cs
- XmlNamespaceManager.cs
- behaviorssection.cs
- ReflectionPermission.cs
- Compiler.cs
- ToolStripDropDownButton.cs
- ActivitiesCollection.cs
- Native.cs
- DataSourceView.cs
- QilReference.cs
- HebrewNumber.cs