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
- BinaryExpression.cs
- SortDescription.cs
- Label.cs
- CodeGenerator.cs
- SqlInfoMessageEvent.cs
- EdmProperty.cs
- IPipelineRuntime.cs
- SelectingProviderEventArgs.cs
- ExpressionEvaluator.cs
- Size3DValueSerializer.cs
- TextEditorCharacters.cs
- MemberHolder.cs
- DbParameterCollectionHelper.cs
- Separator.cs
- StorageEntityTypeMapping.cs
- HeaderUtility.cs
- AttachmentService.cs
- documentsequencetextpointer.cs
- SelectionEditor.cs
- HttpConfigurationContext.cs
- DoubleAnimationBase.cs
- Send.cs
- OutputCacheProfile.cs
- WriteLineDesigner.xaml.cs
- SQLRoleProvider.cs
- RtfControls.cs
- IPEndPointCollection.cs
- BasicCellRelation.cs
- OdbcErrorCollection.cs
- httpapplicationstate.cs
- ActivationArguments.cs
- UseManagedPresentationElement.cs
- DockingAttribute.cs
- Util.cs
- CompiledQuery.cs
- FilteredAttributeCollection.cs
- MappingException.cs
- SqlBuilder.cs
- InvalidOleVariantTypeException.cs
- CommonRemoteMemoryBlock.cs
- Figure.cs
- GridViewCommandEventArgs.cs
- TransactionManager.cs
- GestureRecognizer.cs
- DSASignatureDeformatter.cs
- DataColumnChangeEvent.cs
- FormViewRow.cs
- Transform.cs
- XmlFormatExtensionPrefixAttribute.cs
- SkinIDTypeConverter.cs
- DirectoryInfo.cs
- CompilationUtil.cs
- PropertyChangedEventArgs.cs
- CalendarDateRangeChangingEventArgs.cs
- DesignUtil.cs
- IDReferencePropertyAttribute.cs
- ForEachAction.cs
- GlyphInfoList.cs
- SimpleType.cs
- OLEDB_Enum.cs
- ControlParameter.cs
- Codec.cs
- XmlComplianceUtil.cs
- DocumentViewer.cs
- listitem.cs
- DoubleAnimationBase.cs
- DataGridCell.cs
- ConversionContext.cs
- AgileSafeNativeMemoryHandle.cs
- PlainXmlSerializer.cs
- ObjectView.cs
- XmlUTF8TextWriter.cs
- SplitContainerDesigner.cs
- BrowserDefinitionCollection.cs
- BaseParagraph.cs
- StateBag.cs
- TileBrush.cs
- EmptyCollection.cs
- MappingException.cs
- OdbcFactory.cs
- ProbeDuplex11AsyncResult.cs
- MultiBinding.cs
- EditorZone.cs
- AutoGeneratedField.cs
- ResourceExpression.cs
- AttributeCollection.cs
- PrintDocument.cs
- PointAnimationUsingPath.cs
- SqlDataSource.cs
- ContextMenuStripGroupCollection.cs
- BorderGapMaskConverter.cs
- hresults.cs
- TreeBuilder.cs
- Win32MouseDevice.cs
- XComponentModel.cs
- ScaleTransform.cs
- ResXResourceWriter.cs
- TaiwanCalendar.cs
- FramingEncoders.cs
- SqlClientMetaDataCollectionNames.cs