Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ResolveNameEventArgs.cs
- RelatedCurrencyManager.cs
- XmlWhitespace.cs
- DbConnectionPoolCounters.cs
- DetailsViewDeletedEventArgs.cs
- HtmlGenericControl.cs
- DbConnectionOptions.cs
- IsolatedStoragePermission.cs
- ObjectNotFoundException.cs
- BitmapEffectrendercontext.cs
- StringStorage.cs
- XmlReaderSettings.cs
- ExpressionBuilder.cs
- DriveInfo.cs
- TemplatedAdorner.cs
- DataGridViewMethods.cs
- SeekStoryboard.cs
- SpeechSynthesizer.cs
- FontNamesConverter.cs
- ScriptingAuthenticationServiceSection.cs
- IisTraceListener.cs
- ServiceOperationInfoTypeConverter.cs
- InternalControlCollection.cs
- TextDecorationCollection.cs
- ModuleConfigurationInfo.cs
- SamlAssertion.cs
- ForeignKeyConstraint.cs
- ZoneButton.cs
- AmbiguousMatchException.cs
- XmlObjectSerializerReadContextComplex.cs
- ToolTipAutomationPeer.cs
- XsdDateTime.cs
- DateTimeConverter.cs
- IdentityReference.cs
- ExpressionEditorAttribute.cs
- CqlIdentifiers.cs
- OlePropertyStructs.cs
- TreeNodeCollectionEditor.cs
- DirectoryObjectSecurity.cs
- WindowsSolidBrush.cs
- DynamicILGenerator.cs
- UnknownBitmapDecoder.cs
- Rotation3DAnimationUsingKeyFrames.cs
- ColumnHeaderConverter.cs
- ReadOnlyHierarchicalDataSourceView.cs
- VBCodeProvider.cs
- ControlType.cs
- XmlNodeReader.cs
- TextElementEditingBehaviorAttribute.cs
- ContractCodeDomInfo.cs
- TreeNode.cs
- TargetConverter.cs
- DirectoryGroupQuery.cs
- SecurityKeyIdentifierClause.cs
- PropertyInformation.cs
- CustomValidator.cs
- ObjectListDesigner.cs
- ConfigXmlCDataSection.cs
- Pair.cs
- StringValidatorAttribute.cs
- Relationship.cs
- CngKeyCreationParameters.cs
- SqlSelectStatement.cs
- CachedTypeface.cs
- TextTrailingCharacterEllipsis.cs
- IgnoreSectionHandler.cs
- TextDecorationCollection.cs
- LocalizationParserHooks.cs
- x509store.cs
- TableRow.cs
- Int32Collection.cs
- PageClientProxyGenerator.cs
- TemplateInstanceAttribute.cs
- NumericExpr.cs
- CustomAttributeSerializer.cs
- AuthenticateEventArgs.cs
- SID.cs
- UpdateManifestForBrowserApplication.cs
- PtsContext.cs
- MenuItem.cs
- DataTableMappingCollection.cs
- Error.cs
- ThrowHelper.cs
- PolyQuadraticBezierSegment.cs
- DocumentsTrace.cs
- DataTemplate.cs
- PersonalizationStateInfoCollection.cs
- SystemColorTracker.cs
- IImplicitResourceProvider.cs
- CodeTryCatchFinallyStatement.cs
- PropertyMetadata.cs
- AttributeCollection.cs
- Int32RectValueSerializer.cs
- GregorianCalendarHelper.cs
- DocumentViewerBaseAutomationPeer.cs
- RectangleHotSpot.cs
- ActiveXSerializer.cs
- SqlUnionizer.cs
- XmlAggregates.cs
- Accessible.cs