Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpConfigurationContext.cs
- AnnotationResourceCollection.cs
- XamlGridLengthSerializer.cs
- RegexInterpreter.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- OutputScope.cs
- UrlMapping.cs
- MetadataItemEmitter.cs
- StringFormat.cs
- Encoding.cs
- InvalidOleVariantTypeException.cs
- ActiveDocumentEvent.cs
- DateBoldEvent.cs
- UnsafeNativeMethodsCLR.cs
- DataQuery.cs
- ObjectPersistData.cs
- ProcessMessagesAsyncResult.cs
- StaticContext.cs
- FixedSOMTableRow.cs
- GridPattern.cs
- Properties.cs
- GridViewColumnCollectionChangedEventArgs.cs
- XmlUrlResolver.cs
- ZipArchive.cs
- MouseGestureConverter.cs
- CharUnicodeInfo.cs
- MetricEntry.cs
- ScrollProperties.cs
- ListViewGroup.cs
- CroppedBitmap.cs
- InputBuffer.cs
- Gdiplus.cs
- ExceptionHelpers.cs
- RegistrationServices.cs
- TextClipboardData.cs
- OdbcStatementHandle.cs
- TimeSpan.cs
- SkipStoryboardToFill.cs
- AvTraceFormat.cs
- DesignerSerializationVisibilityAttribute.cs
- Propagator.ExtentPlaceholderCreator.cs
- AssemblyCollection.cs
- EditorZoneDesigner.cs
- HuffCodec.cs
- HelpInfo.cs
- ReflectionHelper.cs
- Popup.cs
- XamlSerializer.cs
- Crc32.cs
- DateTimeParse.cs
- Rotation3DKeyFrameCollection.cs
- XamlVector3DCollectionSerializer.cs
- DataColumn.cs
- TextElementCollectionHelper.cs
- ProfileBuildProvider.cs
- SByteConverter.cs
- EntityConnectionStringBuilder.cs
- ColumnTypeConverter.cs
- SerialPort.cs
- CompressedStack.cs
- Condition.cs
- InvalidComObjectException.cs
- AnnotationResourceCollection.cs
- SamlAuthorizationDecisionClaimResource.cs
- EntityDataSourceWrapper.cs
- TextDecorations.cs
- XmlAnyElementAttribute.cs
- GeneralTransform.cs
- MsmqOutputChannel.cs
- DynamicUpdateCommand.cs
- VisualStyleTypesAndProperties.cs
- FormViewCommandEventArgs.cs
- Variable.cs
- XmlCharCheckingWriter.cs
- RowParagraph.cs
- TreeNodeCollectionEditor.cs
- RootDesignerSerializerAttribute.cs
- ExpressionNode.cs
- SemaphoreSecurity.cs
- DependencyObjectProvider.cs
- PenLineJoinValidation.cs
- TypeBuilder.cs
- SqlGatherConsumedAliases.cs
- XamlPointCollectionSerializer.cs
- Cursors.cs
- ActivityExecutionFilter.cs
- StringToken.cs
- DataViewListener.cs
- FlowDocumentView.cs
- ChtmlLinkAdapter.cs
- SqlClientMetaDataCollectionNames.cs
- PageParserFilter.cs
- DbDataSourceEnumerator.cs
- QueryPageSettingsEventArgs.cs
- XmlImplementation.cs
- ClusterRegistryConfigurationProvider.cs
- TextureBrush.cs
- ResourceManager.cs
- TypedElement.cs
- SafePipeHandle.cs