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
- PickDesigner.xaml.cs
- path.cs
- COM2PropertyPageUITypeConverter.cs
- FrameSecurityDescriptor.cs
- XsdDateTime.cs
- EntityCommandDefinition.cs
- CacheMemory.cs
- Visitors.cs
- QueryCacheKey.cs
- ResXResourceSet.cs
- TrackingServices.cs
- TypefaceCollection.cs
- LinkButton.cs
- GPStream.cs
- ExpressionBindingCollection.cs
- ContainerUtilities.cs
- XmlEntityReference.cs
- LinqDataSourceUpdateEventArgs.cs
- IgnorePropertiesAttribute.cs
- HtmlTernaryTree.cs
- SafeProcessHandle.cs
- BasicExpandProvider.cs
- wgx_exports.cs
- Material.cs
- EntityDescriptor.cs
- SAPIEngineTypes.cs
- GridViewCancelEditEventArgs.cs
- SmiTypedGetterSetter.cs
- BinaryNode.cs
- ClaimTypes.cs
- GradientSpreadMethodValidation.cs
- DesignerActionMethodItem.cs
- MasterPageBuildProvider.cs
- WindowsRichEditRange.cs
- CheckBoxRenderer.cs
- ValueUnavailableException.cs
- SafeProcessHandle.cs
- SynchronizedInputAdaptor.cs
- WebProxyScriptElement.cs
- TableParagraph.cs
- AuthenticatingEventArgs.cs
- DrawingAttributesDefaultValueFactory.cs
- IIS7WorkerRequest.cs
- Bezier.cs
- sapiproxy.cs
- SingleAnimationBase.cs
- DataReceivedEventArgs.cs
- RuntimeWrappedException.cs
- WebPartConnectionsConfigureVerb.cs
- ImageDrawing.cs
- JsonServiceDocumentSerializer.cs
- SwitchElementsCollection.cs
- XmlSchemaSimpleContentRestriction.cs
- DocumentViewerHelper.cs
- OdbcConnectionString.cs
- ActiveDocumentEvent.cs
- UnsafeNativeMethods.cs
- Send.cs
- GAC.cs
- StateMachineAction.cs
- PromptStyle.cs
- SiteOfOriginContainer.cs
- FramingDecoders.cs
- StylusPointProperties.cs
- LoginName.cs
- counter.cs
- SpotLight.cs
- dtdvalidator.cs
- Splitter.cs
- OracleDataAdapter.cs
- ObjectIDGenerator.cs
- XmlNodeList.cs
- BinHexDecoder.cs
- DrawListViewItemEventArgs.cs
- EventLogEntry.cs
- ConfigXmlSignificantWhitespace.cs
- MultiByteCodec.cs
- XmlRawWriter.cs
- DateTimeEditor.cs
- WebPartManager.cs
- PathFigure.cs
- Certificate.cs
- FixedBufferAttribute.cs
- AuthenticationModuleElementCollection.cs
- DiscoveryDocumentSerializer.cs
- EntityDataSourceContextCreatingEventArgs.cs
- InteropAutomationProvider.cs
- ListBase.cs
- FileSystemWatcher.cs
- Viewport3DAutomationPeer.cs
- FixedSOMGroup.cs
- PasswordTextContainer.cs
- DataGridViewRowsAddedEventArgs.cs
- CultureInfo.cs
- IssuanceLicense.cs
- ClassImporter.cs
- Clock.cs
- HtmlInputHidden.cs
- X509CertificateRecipientClientCredential.cs
- WebPartEditVerb.cs