Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Automation / Peers / SelectorItemAutomationPeer.cs / 1 / SelectorItemAutomationPeer.cs
using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Security; using System.Text; using System.Windows; using System.Windows.Automation.Provider; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Interop; using System.Windows.Media; using MS.Internal; using MS.Win32; namespace System.Windows.Automation.Peers { /// public abstract class SelectorItemAutomationPeer : ItemAutomationPeer, ISelectionItemProvider { /// protected SelectorItemAutomationPeer(object owner, SelectorAutomationPeer selectorAutomationPeer) : base(owner, selectorAutomationPeer) { } /// override public object GetPattern(PatternInterface patternInterface) { if(patternInterface == PatternInterface.SelectionItem) { return this; } return null; } ////// Sets the current element as the selection /// This clears the selection from other elements in the container /// void ISelectionItemProvider.Select() { if(!IsEnabled()) throw new ElementNotEnabledException(); Selector parentSelector = (Selector)(ItemsControlAutomationPeer.Owner); if (parentSelector == null) { throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed)); } parentSelector.SelectionChange.SelectJustThisItem(Item, true /* assumeInItemsCollection */); } ////// Adds current element to selection /// void ISelectionItemProvider.AddToSelection() { if(!IsEnabled()) throw new ElementNotEnabledException(); Selector parentSelector = (Selector)(ItemsControlAutomationPeer.Owner); if ((parentSelector == null) || (!parentSelector.CanSelectMultiple && parentSelector.SelectedItem != null && parentSelector.SelectedItem != Item)) { // Parent must exist and be multi-select // in single-select mode the selected item should be null or Owner throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed)); } parentSelector.SelectionChange.Begin(); parentSelector.SelectionChange.Select(Item, true); parentSelector.SelectionChange.End(); } ////// Removes current element from selection /// void ISelectionItemProvider.RemoveFromSelection() { if(!IsEnabled()) throw new ElementNotEnabledException(); Selector parentSelector = (Selector)(ItemsControlAutomationPeer.Owner); parentSelector.SelectionChange.Begin(); parentSelector.SelectionChange.Unselect(Item); parentSelector.SelectionChange.End(); } ////// Check whether an element is selected /// ///returns true if the element is selected bool ISelectionItemProvider.IsSelected { get { Selector parentSelector = (Selector)(ItemsControlAutomationPeer.Owner); return parentSelector._selectedItems.Contains(Item); } } ////// The logical element that supports the SelectionPattern for this Item /// ///returns an IRawElementProviderSimple IRawElementProviderSimple ISelectionItemProvider.SelectionContainer { get { return ProviderFromPeer(ItemsControlAutomationPeer); } } // [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] internal void RaiseAutomationIsSelectedChanged(bool isSelected) { RaisePropertyChangedEvent( SelectionItemPatternIdentifiers.IsSelectedProperty, !isSelected, isSelected); } } } // 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
- XmlSubtreeReader.cs
- Exceptions.cs
- SequenceNumber.cs
- StreamingContext.cs
- DnsEndPoint.cs
- Geometry.cs
- DataGridViewRowConverter.cs
- GifBitmapDecoder.cs
- CommandEventArgs.cs
- BitHelper.cs
- DataObjectAttribute.cs
- _ScatterGatherBuffers.cs
- DiagnosticsConfigurationHandler.cs
- FileVersionInfo.cs
- VectorValueSerializer.cs
- Mutex.cs
- ApplicationInfo.cs
- DocumentOrderComparer.cs
- DesignerProperties.cs
- ListBoxDesigner.cs
- XamlSerializerUtil.cs
- DependencyPropertyChangedEventArgs.cs
- TraceInternal.cs
- WebService.cs
- InternalControlCollection.cs
- SingletonInstanceContextProvider.cs
- InvalidDataException.cs
- BrowserDefinitionCollection.cs
- InstanceData.cs
- ListBoxItemWrapperAutomationPeer.cs
- TimeSpanMinutesConverter.cs
- ColumnResult.cs
- AutomationPropertyInfo.cs
- StringValidatorAttribute.cs
- SecurityDocument.cs
- XmlSchemaParticle.cs
- CodeArgumentReferenceExpression.cs
- Geometry3D.cs
- RenderOptions.cs
- RegularExpressionValidator.cs
- Misc.cs
- SchemaRegistration.cs
- Parser.cs
- ClientScriptManager.cs
- Color.cs
- MapPathBasedVirtualPathProvider.cs
- Freezable.cs
- SafeHGlobalHandleCritical.cs
- BlockCollection.cs
- LoginUtil.cs
- InternalTypeHelper.cs
- BooleanExpr.cs
- StoreContentChangedEventArgs.cs
- GridViewColumn.cs
- XPathMessageFilterElementCollection.cs
- DirectionalLight.cs
- AutoResetEvent.cs
- SafeNativeMethods.cs
- ExpressionsCollectionEditor.cs
- DbConnectionPoolCounters.cs
- exports.cs
- LinqDataSourceSelectEventArgs.cs
- StorageEntityTypeMapping.cs
- ReferenceService.cs
- securitycriticaldataClass.cs
- XmlCollation.cs
- ISAPIWorkerRequest.cs
- TraceLevelHelper.cs
- StrokeSerializer.cs
- UnknownMessageReceivedEventArgs.cs
- GenericWebPart.cs
- ConfigurationStrings.cs
- TextStore.cs
- XpsDocument.cs
- DataException.cs
- AsymmetricCryptoHandle.cs
- SiteOfOriginContainer.cs
- HScrollProperties.cs
- ZoneIdentityPermission.cs
- MobileControlDesigner.cs
- XamlVector3DCollectionSerializer.cs
- ThreadInterruptedException.cs
- RelationshipEntry.cs
- WindowsStartMenu.cs
- SecurityTraceRecordHelper.cs
- TableLayoutCellPaintEventArgs.cs
- PersonalizationProviderHelper.cs
- ToolTipAutomationPeer.cs
- IsolatedStorageException.cs
- HiddenFieldDesigner.cs
- SelectiveScrollingGrid.cs
- DynamicContractTypeBuilder.cs
- DisplayInformation.cs
- EntityContainerEntitySet.cs
- nulltextnavigator.cs
- EventToken.cs
- ImageInfo.cs
- StandardToolWindows.cs
- ShapeTypeface.cs
- StylusPointCollection.cs