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
- ToolStripScrollButton.cs
- DSACryptoServiceProvider.cs
- PenCursorManager.cs
- ITextView.cs
- ClientScriptManager.cs
- SByte.cs
- Substitution.cs
- ExpressionPrefixAttribute.cs
- NumericPagerField.cs
- UnaryNode.cs
- MenuCommands.cs
- TextEffectResolver.cs
- UIElement.cs
- MenuItemStyle.cs
- OleDbPropertySetGuid.cs
- ScriptingRoleServiceSection.cs
- ExpressionVisitorHelpers.cs
- WebPartDisplayMode.cs
- XmlSchemaGroup.cs
- URLMembershipCondition.cs
- RectangleGeometry.cs
- DockPanel.cs
- AutomationAttributeInfo.cs
- CubicEase.cs
- HyperLinkColumn.cs
- XmlNodeChangedEventArgs.cs
- ReadOnlyTernaryTree.cs
- PropertyPathWorker.cs
- MobileContainerDesigner.cs
- SequentialOutput.cs
- SynchronizationHandlesCodeDomSerializer.cs
- ConstraintStruct.cs
- DataGridViewCellStateChangedEventArgs.cs
- HtmlTextArea.cs
- DocumentViewerBaseAutomationPeer.cs
- DesignerActionService.cs
- PassportAuthenticationModule.cs
- WebPartManager.cs
- CompilerGlobalScopeAttribute.cs
- CheckBox.cs
- DataContractSerializerOperationGenerator.cs
- TextServicesManager.cs
- EntityContainerEmitter.cs
- CompilationRelaxations.cs
- PrintPreviewGraphics.cs
- TimersDescriptionAttribute.cs
- NumberFunctions.cs
- ButtonPopupAdapter.cs
- WorkingDirectoryEditor.cs
- Decoder.cs
- HttpPostedFile.cs
- HttpPostedFile.cs
- StreamMarshaler.cs
- TypeSystem.cs
- DataGridTablesFactory.cs
- BindingMemberInfo.cs
- AssemblyAttributes.cs
- ScrollViewer.cs
- VirtualizingStackPanel.cs
- HostingEnvironmentWrapper.cs
- StackBuilderSink.cs
- TableLayoutSettings.cs
- TileBrush.cs
- UserCancellationException.cs
- Help.cs
- QilReplaceVisitor.cs
- NamedPermissionSet.cs
- TiffBitmapDecoder.cs
- EditorServiceContext.cs
- AutomationPattern.cs
- RoutedCommand.cs
- X509SecurityToken.cs
- BinaryParser.cs
- RequestCacheValidator.cs
- ParameterElement.cs
- XmlAtomicValue.cs
- DataGridViewEditingControlShowingEventArgs.cs
- ImportDesigner.xaml.cs
- ContentElement.cs
- XPathNavigatorReader.cs
- ProcessModelInfo.cs
- MenuItemStyle.cs
- CompModSwitches.cs
- FontResourceCache.cs
- MeasureData.cs
- CatalogPartDesigner.cs
- ActivationArguments.cs
- UserControl.cs
- DetailsViewRowCollection.cs
- ConfigXmlWhitespace.cs
- Assert.cs
- ActiveXHost.cs
- MediaElement.cs
- JournalEntry.cs
- BaseResourcesBuildProvider.cs
- WebServiceResponseDesigner.cs
- CLSCompliantAttribute.cs
- SchemaConstraints.cs
- SqlMethods.cs
- _CookieModule.cs