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
- PropertyValueChangedEvent.cs
- ValidateNames.cs
- _UriSyntax.cs
- RealizedColumnsBlock.cs
- ListViewGroup.cs
- SequenceFullException.cs
- ScrollViewer.cs
- Executor.cs
- ChildrenQuery.cs
- Separator.cs
- MailDefinitionBodyFileNameEditor.cs
- SafeNativeMethods.cs
- DrawingImage.cs
- KeyFrames.cs
- webclient.cs
- ExpressionWriter.cs
- ProcessModule.cs
- PhysicalFontFamily.cs
- externdll.cs
- SpecularMaterial.cs
- MimeFormImporter.cs
- MouseActionValueSerializer.cs
- DrawingDrawingContext.cs
- SafeSecurityHandles.cs
- ConvertEvent.cs
- Matrix3D.cs
- ReadWriteControlDesigner.cs
- HotCommands.cs
- RowSpanVector.cs
- GridViewPageEventArgs.cs
- EncryptedData.cs
- FixedTextPointer.cs
- ZoneLinkButton.cs
- ServiceHostingEnvironmentSection.cs
- Verify.cs
- SharedDp.cs
- SemanticKeyElement.cs
- ReadOnlyObservableCollection.cs
- TableAutomationPeer.cs
- Msmq4PoisonHandler.cs
- BitmapEffect.cs
- PersonalizationStateInfo.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- ColorAnimationBase.cs
- SafeRightsManagementSessionHandle.cs
- FactoryGenerator.cs
- storepermissionattribute.cs
- PeerNodeAddress.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- MinMaxParagraphWidth.cs
- ReadOnlyTernaryTree.cs
- Size3DValueSerializer.cs
- DynamicActivityTypeDescriptor.cs
- IQueryable.cs
- ReferentialConstraint.cs
- SafeNativeMethods.cs
- CodeNamespaceImport.cs
- FlowThrottle.cs
- DesignerVerbCollection.cs
- BodyGlyph.cs
- XmlComplianceUtil.cs
- HashMembershipCondition.cs
- EntityConnectionStringBuilderItem.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Stopwatch.cs
- MobileCategoryAttribute.cs
- BuilderPropertyEntry.cs
- ResponseBodyWriter.cs
- VirtualizingStackPanel.cs
- SiteMapNodeItemEventArgs.cs
- XmlElementList.cs
- _UriTypeConverter.cs
- DataList.cs
- ConditionCollection.cs
- NamespaceCollection.cs
- TraceData.cs
- CurrencyManager.cs
- ComponentEditorForm.cs
- _NegotiateClient.cs
- RelationshipEndMember.cs
- GenericTransactionFlowAttribute.cs
- IdnMapping.cs
- DynamicField.cs
- ImageListStreamer.cs
- ChtmlTextWriter.cs
- CachedFontFamily.cs
- DeadCharTextComposition.cs
- UserControlBuildProvider.cs
- Underline.cs
- MemberAccessException.cs
- DataGridViewToolTip.cs
- XmlProcessingInstruction.cs
- PrePrepareMethodAttribute.cs
- RelatedCurrencyManager.cs
- UITypeEditor.cs
- PenThreadWorker.cs
- FontCacheUtil.cs
- ProcessProtocolHandler.cs
- BamlVersionHeader.cs
- GeneralTransform3DGroup.cs