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
- PrtCap_Public.cs
- PageFunction.cs
- SqlCacheDependencyDatabaseCollection.cs
- DESCryptoServiceProvider.cs
- WmpBitmapEncoder.cs
- dbenumerator.cs
- CheckedListBox.cs
- _ConnectionGroup.cs
- CacheRequest.cs
- CannotUnloadAppDomainException.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- ExpressionPrefixAttribute.cs
- PagerSettings.cs
- EntitySetBaseCollection.cs
- ExpressionBuilder.cs
- MonthChangedEventArgs.cs
- GroupBox.cs
- MessageEncoder.cs
- _HeaderInfoTable.cs
- EDesignUtil.cs
- SortDescription.cs
- Debug.cs
- RequestTimeoutManager.cs
- TouchEventArgs.cs
- JsonXmlDataContract.cs
- Figure.cs
- UserPreferenceChangedEventArgs.cs
- HtmlUtf8RawTextWriter.cs
- PasswordPropertyTextAttribute.cs
- RoleService.cs
- Int16KeyFrameCollection.cs
- TextSelectionHighlightLayer.cs
- EmptyStringExpandableObjectConverter.cs
- ItemList.cs
- FactoryRecord.cs
- SplitContainer.cs
- RawStylusInputCustomDataList.cs
- UInt64.cs
- ComPlusContractBehavior.cs
- QuaternionConverter.cs
- LoginView.cs
- NameHandler.cs
- HttpApplication.cs
- WebSysDefaultValueAttribute.cs
- RadioButtonList.cs
- TransformationRules.cs
- LassoHelper.cs
- AuthenticationSection.cs
- WebPartConnectionsDisconnectVerb.cs
- WebPartDisplayModeCancelEventArgs.cs
- SafeBitVector32.cs
- PtsPage.cs
- XhtmlStyleClass.cs
- SchemaHelper.cs
- CombinedGeometry.cs
- ExtentCqlBlock.cs
- IPEndPoint.cs
- AsynchronousChannelMergeEnumerator.cs
- MessageSecurityOverHttpElement.cs
- MachineKeySection.cs
- XmlNavigatorStack.cs
- HTMLTagNameToTypeMapper.cs
- recordstate.cs
- CheckPair.cs
- XpsFilter.cs
- RequestCachingSection.cs
- shaper.cs
- PolicyLevel.cs
- KernelTypeValidation.cs
- GridViewUpdateEventArgs.cs
- WebPartVerbsEventArgs.cs
- CategoryEditor.cs
- TableSectionStyle.cs
- _TLSstream.cs
- Msmq.cs
- UnsettableComboBox.cs
- DefaultAsyncDataDispatcher.cs
- TabControl.cs
- ContentValidator.cs
- IApplicationTrustManager.cs
- RemoteCryptoDecryptRequest.cs
- Group.cs
- ObjectParameter.cs
- ConfigurationLockCollection.cs
- DocumentAutomationPeer.cs
- SkewTransform.cs
- SqlGenericUtil.cs
- Barrier.cs
- RegionData.cs
- NamespaceInfo.cs
- TemplateNameScope.cs
- SerializationInfoEnumerator.cs
- ImageButton.cs
- ServiceDefaults.cs
- HybridDictionary.cs
- SecurityKeyIdentifier.cs
- RegisteredArrayDeclaration.cs
- FeatureSupport.cs
- BitmapPalettes.cs
- AppDomainResourcePerfCounters.cs