Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Automation / Peers / SelectorItemAutomationPeer.cs / 1 / 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 null; } ////// 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 null; } ////// 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
- IssuedTokenServiceCredential.cs
- DSACryptoServiceProvider.cs
- ExpressionSelection.cs
- DataGridViewTextBoxEditingControl.cs
- SqlCharStream.cs
- Input.cs
- ComponentEditorForm.cs
- D3DImage.cs
- PerformanceCounterLib.cs
- NavigationService.cs
- ServiceRouteHandler.cs
- XmlNamespaceManager.cs
- EnumType.cs
- LineBreakRecord.cs
- SetStateDesigner.cs
- FileLogRecord.cs
- Positioning.cs
- Positioning.cs
- NotConverter.cs
- documentsequencetextcontainer.cs
- PropertyMetadata.cs
- TemplatePagerField.cs
- WsdlHelpGeneratorElement.cs
- IPPacketInformation.cs
- RadioButtonRenderer.cs
- TextBlock.cs
- Comparer.cs
- HierarchicalDataBoundControl.cs
- DataGridViewHitTestInfo.cs
- ObjectSet.cs
- UnsignedPublishLicense.cs
- CustomDictionarySources.cs
- EncodingConverter.cs
- Int16Animation.cs
- ListControl.cs
- ApplicationBuildProvider.cs
- StringPropertyBuilder.cs
- SimpleWorkerRequest.cs
- AdapterUtil.cs
- XPathBinder.cs
- AlphaSortedEnumConverter.cs
- DataRowChangeEvent.cs
- SystemNetworkInterface.cs
- Transform3D.cs
- XmlSchemaSimpleTypeUnion.cs
- ClientSettingsSection.cs
- XmlReader.cs
- ToolStripSettings.cs
- EntityDataSourceContextDisposingEventArgs.cs
- XPathBinder.cs
- ZipIOCentralDirectoryBlock.cs
- HttpListenerResponse.cs
- XmlSortKey.cs
- FacetValueContainer.cs
- _NegoState.cs
- HwndProxyElementProvider.cs
- EdmRelationshipRoleAttribute.cs
- LinkedList.cs
- WebSysDisplayNameAttribute.cs
- DataRelation.cs
- Label.cs
- VisualStyleElement.cs
- EventSinkActivity.cs
- HandlerBase.cs
- StdRegProviderWrapper.cs
- LinkTarget.cs
- ImportCatalogPart.cs
- StringExpressionSet.cs
- ClientSettings.cs
- CurrentTimeZone.cs
- ValuePattern.cs
- StagingAreaInputItem.cs
- SoapFault.cs
- TypeResolvingOptions.cs
- ChangePassword.cs
- Converter.cs
- ThreadStaticAttribute.cs
- Assembly.cs
- RenderCapability.cs
- ThumbAutomationPeer.cs
- UIPermission.cs
- ReferenceService.cs
- WebResourceUtil.cs
- ModelTreeEnumerator.cs
- Point4DValueSerializer.cs
- ObjectDataSourceFilteringEventArgs.cs
- ActivitySurrogateSelector.cs
- CompiledAction.cs
- AnimatedTypeHelpers.cs
- formatstringdialog.cs
- cookie.cs
- JumpPath.cs
- HttpCachePolicy.cs
- TreeBuilderBamlTranslator.cs
- UserNameSecurityToken.cs
- LOSFormatter.cs
- DictionaryTraceRecord.cs
- SqlDataSourceSelectingEventArgs.cs
- HttpCookie.cs
- securitycriticaldataformultiplegetandset.cs