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
- XmlSchemaAnnotation.cs
- ReflectTypeDescriptionProvider.cs
- WindowsListViewItem.cs
- FormsIdentity.cs
- DataBoundControl.cs
- X500Name.cs
- ILGenerator.cs
- BamlTreeUpdater.cs
- OpenTypeMethods.cs
- WrapPanel.cs
- XamlDesignerSerializationManager.cs
- Debug.cs
- PasswordDeriveBytes.cs
- PeerNameRecord.cs
- AsyncPostBackErrorEventArgs.cs
- TableParagraph.cs
- URI.cs
- RangeValidator.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- HtmlButton.cs
- SecurityTokenValidationException.cs
- PointHitTestParameters.cs
- PolicyStatement.cs
- HandleRef.cs
- WhitespaceRule.cs
- ExclusiveHandleList.cs
- WindowVisualStateTracker.cs
- ZipIOExtraFieldElement.cs
- SelectionService.cs
- SByte.cs
- XmlCodeExporter.cs
- ApplicationId.cs
- Timer.cs
- CodeAccessPermission.cs
- TimelineGroup.cs
- HScrollBar.cs
- XmlSignatureProperties.cs
- FontDriver.cs
- DataGridViewCellMouseEventArgs.cs
- EntityTemplateFactory.cs
- GZipObjectSerializer.cs
- SinglePageViewer.cs
- DataServiceQueryProvider.cs
- ZipPackage.cs
- ListControl.cs
- DbConnectionStringBuilder.cs
- RemotingAttributes.cs
- ResourceIDHelper.cs
- SortDescription.cs
- TableItemStyle.cs
- DataRecordObjectView.cs
- Publisher.cs
- DateTimeValueSerializerContext.cs
- ActiveXContainer.cs
- FragmentQueryProcessor.cs
- TextParentUndoUnit.cs
- TextContainer.cs
- SqlDataReader.cs
- UIAgentMonitor.cs
- PathSegmentCollection.cs
- PtsPage.cs
- IntegerValidatorAttribute.cs
- DbConnectionPool.cs
- _AutoWebProxyScriptWrapper.cs
- EntityDataSourceDesignerHelper.cs
- DesignerLabelAdapter.cs
- SqlRemoveConstantOrderBy.cs
- HtmlInputButton.cs
- COAUTHINFO.cs
- DelayDesigner.cs
- NavigatorInvalidBodyAccessException.cs
- GPStream.cs
- ProfileEventArgs.cs
- XmlComplianceUtil.cs
- TabletDevice.cs
- SqlFactory.cs
- UIElementHelper.cs
- InstanceDataCollectionCollection.cs
- ParameterReplacerVisitor.cs
- WebScriptMetadataMessageEncoderFactory.cs
- IdleTimeoutMonitor.cs
- CategoriesDocumentFormatter.cs
- FixedNode.cs
- XslCompiledTransform.cs
- DataGridViewHeaderCell.cs
- ObjectHelper.cs
- CapabilitiesState.cs
- StreamUpdate.cs
- ExpressionBuilder.cs
- SqlNotificationRequest.cs
- EmptyTextWriter.cs
- PersonalizationProviderCollection.cs
- SvcMapFile.cs
- RNGCryptoServiceProvider.cs
- SqlRecordBuffer.cs
- DelegatingConfigHost.cs
- TimelineGroup.cs
- SmtpLoginAuthenticationModule.cs
- SerializationIncompleteException.cs
- WizardPanel.cs