Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- InvalidPropValue.cs
- ServiceBuildProvider.cs
- SessionState.cs
- XmlAttributeAttribute.cs
- WsiProfilesElement.cs
- FacetDescription.cs
- TypeListConverter.cs
- PageEventArgs.cs
- CachedTypeface.cs
- PassportIdentity.cs
- XmlSchemaElement.cs
- EqualityComparer.cs
- ColorContext.cs
- PathSegmentCollection.cs
- backend.cs
- HybridDictionary.cs
- PageParserFilter.cs
- WebResourceAttribute.cs
- serverconfig.cs
- EntityDescriptor.cs
- ShaperBuffers.cs
- ExpressionBindings.cs
- TemplateControl.cs
- PrivilegedConfigurationManager.cs
- BasicAsyncResult.cs
- X509Certificate2.cs
- SystemEvents.cs
- XmlHelper.cs
- RectangleHotSpot.cs
- FieldNameLookup.cs
- latinshape.cs
- InternalPermissions.cs
- _SafeNetHandles.cs
- SingleAnimationUsingKeyFrames.cs
- SubclassTypeValidatorAttribute.cs
- RelationalExpressions.cs
- PenThread.cs
- UIElementHelper.cs
- DateTimeAutomationPeer.cs
- TraceSection.cs
- SwitchElementsCollection.cs
- TextServicesPropertyRanges.cs
- CheckBoxDesigner.cs
- FreezableOperations.cs
- RuleConditionDialog.cs
- SourceCollection.cs
- BamlBinaryReader.cs
- PathSegmentCollection.cs
- SqlError.cs
- StylusTip.cs
- MobileRedirect.cs
- DesignerTextBoxAdapter.cs
- ObjectParameterCollection.cs
- DrawToolTipEventArgs.cs
- XsdDataContractImporter.cs
- SourceFilter.cs
- RenderingEventArgs.cs
- RelationshipDetailsRow.cs
- RtfToken.cs
- MgmtConfigurationRecord.cs
- Dictionary.cs
- PostBackTrigger.cs
- DataGridViewLinkCell.cs
- TextTreeInsertElementUndoUnit.cs
- FixedPageAutomationPeer.cs
- CodeAttachEventStatement.cs
- GridViewUpdateEventArgs.cs
- TokenBasedSetEnumerator.cs
- ByteAnimationUsingKeyFrames.cs
- StateMachineHelpers.cs
- FontDialog.cs
- ButtonBaseAutomationPeer.cs
- CellPartitioner.cs
- TableLayoutPanelBehavior.cs
- SqlCacheDependencyDatabaseCollection.cs
- ControlCollection.cs
- DiscoveryMessageProperty.cs
- GridSplitter.cs
- MemberInfoSerializationHolder.cs
- PackWebResponse.cs
- X509SecurityTokenProvider.cs
- PhysicalAddress.cs
- ChtmlCommandAdapter.cs
- ToolStripItemTextRenderEventArgs.cs
- WriterOutput.cs
- HttpWebRequest.cs
- TreeWalker.cs
- PnrpPermission.cs
- TemplateBamlTreeBuilder.cs
- ArraySegment.cs
- UnionCqlBlock.cs
- _Rfc2616CacheValidators.cs
- TableLayoutPanelCellPosition.cs
- PropVariant.cs
- PageWrapper.cs
- DefaultSerializationProviderAttribute.cs
- UnsafeNativeMethods.cs
- SspiSafeHandles.cs
- NativeRightsManagementAPIsStructures.cs
- ConfigXmlDocument.cs