Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ContourSegment.cs
- ActivitySurrogateSelector.cs
- CssStyleCollection.cs
- ServiceRoute.cs
- KeySplineConverter.cs
- WsatConfiguration.cs
- FuncCompletionCallbackWrapper.cs
- SecurityManager.cs
- RNGCryptoServiceProvider.cs
- PhotoPrintingIntent.cs
- MailWriter.cs
- WindowsFormsSectionHandler.cs
- LoginName.cs
- DbMetaDataCollectionNames.cs
- CachedFontFamily.cs
- DesignerDataTable.cs
- ExpressionParser.cs
- lengthconverter.cs
- ToolTip.cs
- BooleanKeyFrameCollection.cs
- TextEditorContextMenu.cs
- TextElementEnumerator.cs
- DeobfuscatingStream.cs
- PackWebRequest.cs
- StyleXamlParser.cs
- ConfigViewGenerator.cs
- InplaceBitmapMetadataWriter.cs
- AdRotator.cs
- EntityTypeEmitter.cs
- HtmlContainerControl.cs
- ElementFactory.cs
- DragStartedEventArgs.cs
- MouseButtonEventArgs.cs
- SortDescriptionCollection.cs
- UIAgentAsyncEndRequest.cs
- EffectiveValueEntry.cs
- DesignOnlyAttribute.cs
- Identifier.cs
- NameNode.cs
- EventLogPermissionEntry.cs
- ObjectItemCollection.cs
- PointCollectionConverter.cs
- IntSecurity.cs
- SimpleBitVector32.cs
- Message.cs
- GlobalizationAssembly.cs
- IconEditor.cs
- PropertyAccessVisitor.cs
- DocumentViewerHelper.cs
- ContextProperty.cs
- HiddenFieldPageStatePersister.cs
- Empty.cs
- GroupByExpressionRewriter.cs
- ContentControl.cs
- SymLanguageVendor.cs
- UnsafeNativeMethods.cs
- ErasingStroke.cs
- TogglePattern.cs
- BooleanExpr.cs
- ComboBoxRenderer.cs
- TextElementAutomationPeer.cs
- EncryptedPackage.cs
- QilParameter.cs
- Brushes.cs
- SelectionRangeConverter.cs
- VBCodeProvider.cs
- TextServicesLoader.cs
- FullTextBreakpoint.cs
- ExtenderProvidedPropertyAttribute.cs
- DTCTransactionManager.cs
- RadioButtonList.cs
- PointIndependentAnimationStorage.cs
- TextParagraphCache.cs
- TemplateLookupAction.cs
- invalidudtexception.cs
- TextRangeSerialization.cs
- JoinTreeNode.cs
- DataRecordInternal.cs
- DoubleCollection.cs
- NativeMethods.cs
- DrawingAttributeSerializer.cs
- NavigationProgressEventArgs.cs
- IOException.cs
- PageSettings.cs
- WebSysDefaultValueAttribute.cs
- ModelPerspective.cs
- Style.cs
- Msec.cs
- BamlRecordWriter.cs
- ResourceWriter.cs
- ButtonFieldBase.cs
- KeyInfo.cs
- NotifyParentPropertyAttribute.cs
- EtwTrace.cs
- Maps.cs
- MatrixIndependentAnimationStorage.cs
- SHA512.cs
- localization.cs
- IndexedString.cs
- ZipIOCentralDirectoryDigitalSignature.cs