Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / 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. 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
- ASCIIEncoding.cs
- PropertyEmitter.cs
- XslVisitor.cs
- TextEditorParagraphs.cs
- CqlLexerHelpers.cs
- FixedDocumentSequencePaginator.cs
- FileVersion.cs
- SqlGatherProducedAliases.cs
- _ListenerResponseStream.cs
- UserNameSecurityTokenAuthenticator.cs
- SingleAnimationBase.cs
- SqlCrossApplyToCrossJoin.cs
- ListenerPerfCounters.cs
- ComplexPropertyEntry.cs
- GridViewCancelEditEventArgs.cs
- JpegBitmapDecoder.cs
- XmlDocumentFragment.cs
- BaseTreeIterator.cs
- SQLDouble.cs
- PriorityQueue.cs
- _SslSessionsCache.cs
- EditingScopeUndoUnit.cs
- CodeSubDirectoriesCollection.cs
- ProtectedConfigurationProviderCollection.cs
- CodeExpressionStatement.cs
- XmlChildNodes.cs
- FixedTextView.cs
- PropertyManager.cs
- Mouse.cs
- TickBar.cs
- CodeAttributeDeclarationCollection.cs
- ApplicationBuildProvider.cs
- ConfigXmlSignificantWhitespace.cs
- ParserStreamGeometryContext.cs
- rsa.cs
- PrePrepareMethodAttribute.cs
- ProtectedConfigurationProviderCollection.cs
- TextBox.cs
- StyleTypedPropertyAttribute.cs
- EditingCoordinator.cs
- DocComment.cs
- RegexStringValidatorAttribute.cs
- GridViewHeaderRowPresenter.cs
- BezierSegment.cs
- EventProxy.cs
- CertificateManager.cs
- BaseInfoTable.cs
- InfoCardTraceRecord.cs
- Line.cs
- Ref.cs
- RenderDataDrawingContext.cs
- PageContent.cs
- FilteredReadOnlyMetadataCollection.cs
- Floater.cs
- Int16Animation.cs
- PropertyReferenceExtension.cs
- EventListener.cs
- DropShadowBitmapEffect.cs
- DocumentViewerAutomationPeer.cs
- VirtualizedCellInfoCollection.cs
- FastPropertyAccessor.cs
- ChildrenQuery.cs
- WebServiceEnumData.cs
- BindingManagerDataErrorEventArgs.cs
- SafeRightsManagementSessionHandle.cs
- Oid.cs
- Configuration.cs
- TextRange.cs
- PathGradientBrush.cs
- SchemaImporter.cs
- ParameterElement.cs
- EdmSchemaError.cs
- ScriptControlDescriptor.cs
- _RequestLifetimeSetter.cs
- RadialGradientBrush.cs
- DataServiceResponse.cs
- TabItem.cs
- X500Name.cs
- ColumnPropertiesGroup.cs
- StrokeNodeOperations.cs
- TextEditor.cs
- EmptyControlCollection.cs
- XmlILAnnotation.cs
- CodeTypeReferenceExpression.cs
- ServiceHttpHandlerFactory.cs
- ProfileProvider.cs
- PeerNearMe.cs
- MetadataItemCollectionFactory.cs
- DisposableCollectionWrapper.cs
- IndentedTextWriter.cs
- TextControl.cs
- _DisconnectOverlappedAsyncResult.cs
- DATA_BLOB.cs
- hresults.cs
- Event.cs
- ClientTargetCollection.cs
- NetCodeGroup.cs
- WizardStepBase.cs
- ServiceHttpModule.cs
- HttpCapabilitiesEvaluator.cs