Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / SelectorItemAutomationPeer.cs / 1305600 / 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 base.GetPattern(patternInterface); } ////// 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 base.GetPattern(patternInterface); } ////// 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
- FileDialog_Vista.cs
- StorageInfo.cs
- BevelBitmapEffect.cs
- ClassicBorderDecorator.cs
- WmpBitmapDecoder.cs
- StaticExtension.cs
- BuildProviderCollection.cs
- GlobalEventManager.cs
- XamlParser.cs
- SizeAnimationUsingKeyFrames.cs
- DataGridItemEventArgs.cs
- DataRecordObjectView.cs
- RayHitTestParameters.cs
- TransactionManager.cs
- MatchingStyle.cs
- XmlSchemaComplexContent.cs
- EventLogPermissionAttribute.cs
- WebExceptionStatus.cs
- NumericExpr.cs
- ExtendedProperty.cs
- SoapConverter.cs
- WaitHandle.cs
- DebugView.cs
- DataStreams.cs
- HttpRawResponse.cs
- MailSettingsSection.cs
- PersonalizationStateInfo.cs
- CheckoutException.cs
- TextRangeEditLists.cs
- RectangleGeometry.cs
- LocalizedNameDescriptionPair.cs
- LineSegment.cs
- XmlAutoDetectWriter.cs
- DataObjectEventArgs.cs
- CompiledRegexRunnerFactory.cs
- ConfigurationStrings.cs
- SqlParameter.cs
- StorageAssociationSetMapping.cs
- NonParentingControl.cs
- TableRowCollection.cs
- SimpleBitVector32.cs
- QuaternionConverter.cs
- CaseCqlBlock.cs
- KeyboardDevice.cs
- glyphs.cs
- BinaryCommonClasses.cs
- ManipulationDevice.cs
- ConfigurationSettings.cs
- ZipIOExtraFieldPaddingElement.cs
- UnsafeNativeMethodsTablet.cs
- XmlUtf8RawTextWriter.cs
- GPStream.cs
- ObjectDisposedException.cs
- EmbeddedObject.cs
- mactripleDES.cs
- OutputScopeManager.cs
- TemporaryBitmapFile.cs
- FileDataSourceCache.cs
- MetadataUtil.cs
- ObfuscateAssemblyAttribute.cs
- TableParagraph.cs
- SafeViewOfFileHandle.cs
- ExceptionHelpers.cs
- WindowsIPAddress.cs
- ListSortDescription.cs
- SqlDeflator.cs
- SerialPort.cs
- DataViewManager.cs
- DataGridCellClipboardEventArgs.cs
- TableLayoutStyleCollection.cs
- TextTreeTextElementNode.cs
- PersonalizationProvider.cs
- QuaternionAnimation.cs
- UnionCodeGroup.cs
- PriorityQueue.cs
- DbProviderFactoriesConfigurationHandler.cs
- PartialCachingAttribute.cs
- EllipticalNodeOperations.cs
- DeviceSpecificChoiceCollection.cs
- CancelEventArgs.cs
- Queue.cs
- Single.cs
- MatrixTransform3D.cs
- RemotingConfiguration.cs
- RepeaterItemEventArgs.cs
- EntityContainer.cs
- ClientBuildManager.cs
- TextServicesPropertyRanges.cs
- OdbcHandle.cs
- StringUtil.cs
- ObjectIDGenerator.cs
- ToolStripPanelSelectionGlyph.cs
- WorkingDirectoryEditor.cs
- AttributeTable.cs
- DispatcherObject.cs
- CodeParameterDeclarationExpression.cs
- RoleManagerSection.cs
- SelectionWordBreaker.cs
- Configuration.cs
- TdsEnums.cs