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
- BitmapEffectDrawing.cs
- Misc.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- CharKeyFrameCollection.cs
- CommandEventArgs.cs
- ContainerControl.cs
- OracleRowUpdatingEventArgs.cs
- mansign.cs
- MenuItemCollection.cs
- ValidationSummary.cs
- QuaternionAnimationUsingKeyFrames.cs
- TableAdapterManagerMethodGenerator.cs
- HtmlEncodedRawTextWriter.cs
- HotSpotCollection.cs
- FacetDescription.cs
- MouseCaptureWithinProperty.cs
- Directory.cs
- ImageClickEventArgs.cs
- processwaithandle.cs
- NavigationCommands.cs
- AspProxy.cs
- HtmlTextBoxAdapter.cs
- ButtonAutomationPeer.cs
- Compiler.cs
- CodeMethodReturnStatement.cs
- GraphicsPath.cs
- SafeNativeMethods.cs
- CodeTypeOfExpression.cs
- AppDomainShutdownMonitor.cs
- QuaternionAnimationBase.cs
- RangeContentEnumerator.cs
- Vector3DValueSerializer.cs
- XamlReaderHelper.cs
- ContentFilePart.cs
- Baml2006KeyRecord.cs
- Version.cs
- TextServicesCompartmentEventSink.cs
- MessageLoggingElement.cs
- NavigationEventArgs.cs
- StackBuilderSink.cs
- AudioException.cs
- XamlFxTrace.cs
- SwitchElementsCollection.cs
- WebSysDefaultValueAttribute.cs
- JavaScriptSerializer.cs
- HttpCachePolicy.cs
- WebPartTransformer.cs
- SqlRewriteScalarSubqueries.cs
- SessionKeyExpiredException.cs
- Errors.cs
- WebScriptEndpointElement.cs
- SymLanguageVendor.cs
- EdmPropertyAttribute.cs
- DataGridViewCellPaintingEventArgs.cs
- GridLength.cs
- ScrollContentPresenter.cs
- wmiprovider.cs
- IisTraceListener.cs
- ParenthesizePropertyNameAttribute.cs
- SdlChannelSink.cs
- RpcCryptoContext.cs
- RecordBuilder.cs
- ArraySubsetEnumerator.cs
- PeerNameRegistration.cs
- MarkedHighlightComponent.cs
- EntryPointNotFoundException.cs
- Listen.cs
- AdornedElementPlaceholder.cs
- DeploymentSectionCache.cs
- OutArgumentConverter.cs
- XPathChildIterator.cs
- ValidatingCollection.cs
- Config.cs
- ConfigXmlReader.cs
- DataGridViewToolTip.cs
- DesignTimeHTMLTextWriter.cs
- SqlSelectStatement.cs
- DocumentViewerBaseAutomationPeer.cs
- DataGridViewSelectedCellCollection.cs
- Literal.cs
- ImageConverter.cs
- HttpHostedTransportConfiguration.cs
- MediaScriptCommandRoutedEventArgs.cs
- TcpAppDomainProtocolHandler.cs
- ChtmlTextWriter.cs
- ControlIdConverter.cs
- XPathParser.cs
- OledbConnectionStringbuilder.cs
- ConfigurationSectionCollection.cs
- PersonalizationState.cs
- ToolboxDataAttribute.cs
- UndoManager.cs
- ExclusiveTcpListener.cs
- FlatButtonAppearance.cs
- Msec.cs
- Separator.cs
- ProtocolsConfigurationHandler.cs
- SqlIdentifier.cs
- ScriptComponentDescriptor.cs
- DataSysAttribute.cs