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
- PrivilegeNotHeldException.cs
- ConstrainedDataObject.cs
- Fx.cs
- ApplicationId.cs
- DataGridViewCellLinkedList.cs
- QuaternionAnimation.cs
- XmlReflectionImporter.cs
- CryptoApi.cs
- RadioButtonStandardAdapter.cs
- LocalizabilityAttribute.cs
- EdmTypeAttribute.cs
- SafeMILHandle.cs
- DataGridViewCellMouseEventArgs.cs
- SchemaAttDef.cs
- NetworkStream.cs
- ImageSourceConverter.cs
- PartBasedPackageProperties.cs
- IDispatchConstantAttribute.cs
- InitializeCorrelation.cs
- PageCatalogPart.cs
- ClientProxyGenerator.cs
- SoapSchemaImporter.cs
- SafeBitVector32.cs
- AuthenticationSection.cs
- ColorTransformHelper.cs
- DeclarativeCatalogPart.cs
- DataColumnCollection.cs
- GeneralTransform.cs
- ScopelessEnumAttribute.cs
- XpsFixedPageReaderWriter.cs
- WindowsButton.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- DeobfuscatingStream.cs
- MdiWindowListItemConverter.cs
- XmlSiteMapProvider.cs
- PropertyGridView.cs
- QilReplaceVisitor.cs
- SapiAttributeParser.cs
- HttpModule.cs
- ChildDocumentBlock.cs
- TCEAdapterGenerator.cs
- ContextStaticAttribute.cs
- SapiRecognizer.cs
- ISFClipboardData.cs
- DoubleLink.cs
- TextFormatter.cs
- DbDataSourceEnumerator.cs
- LocalTransaction.cs
- TreeViewCancelEvent.cs
- QueueSurrogate.cs
- DoubleAnimationClockResource.cs
- HierarchicalDataBoundControlAdapter.cs
- CaseStatement.cs
- ToolStripManager.cs
- coordinatorscratchpad.cs
- DbgUtil.cs
- TextPenaltyModule.cs
- PlatformCulture.cs
- XmlLinkedNode.cs
- LinkLabelLinkClickedEvent.cs
- ListViewDeleteEventArgs.cs
- CommandLibraryHelper.cs
- TimeSpanParse.cs
- DtdParser.cs
- ContainerSelectorBehavior.cs
- Debug.cs
- BufferManager.cs
- TextCollapsingProperties.cs
- InvokeProviderWrapper.cs
- FormatStringEditor.cs
- DataControlCommands.cs
- XPathMessageFilterElement.cs
- CompositeFontInfo.cs
- PointHitTestResult.cs
- SID.cs
- Table.cs
- ServiceParser.cs
- CapiSafeHandles.cs
- ReaderOutput.cs
- HyperLinkStyle.cs
- SafeMarshalContext.cs
- Int16AnimationBase.cs
- ElementHostPropertyMap.cs
- UnlockCardRequest.cs
- HttpRequestWrapper.cs
- ControlBuilder.cs
- Int16.cs
- DetailsViewInsertEventArgs.cs
- PageScaling.cs
- FieldNameLookup.cs
- Int32KeyFrameCollection.cs
- SmtpSection.cs
- AvTraceDetails.cs
- CompilerCollection.cs
- SingleAnimationUsingKeyFrames.cs
- MULTI_QI.cs
- OnOperation.cs
- SolidBrush.cs
- CallbackValidator.cs
- ConfigurationCollectionAttribute.cs