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
- EdmItemError.cs
- HtmlInputText.cs
- ColumnCollection.cs
- DocumentReferenceCollection.cs
- MaskedTextBox.cs
- MessageParameterAttribute.cs
- ButtonBaseAutomationPeer.cs
- QueryOperationResponseOfT.cs
- AttributeEmitter.cs
- COM2TypeInfoProcessor.cs
- DataGridViewBindingCompleteEventArgs.cs
- EffectiveValueEntry.cs
- DataGridCommandEventArgs.cs
- StringKeyFrameCollection.cs
- AnnotationResource.cs
- HttpRuntime.cs
- ValidatingReaderNodeData.cs
- ProgressBar.cs
- RoleBoolean.cs
- ModifiableIteratorCollection.cs
- ProfileInfo.cs
- DrawingAttributes.cs
- SqlDataSourceQueryConverter.cs
- Types.cs
- MultiPropertyDescriptorGridEntry.cs
- Repeater.cs
- IndentedWriter.cs
- UrlPath.cs
- BigInt.cs
- XPathSelfQuery.cs
- SpecialNameAttribute.cs
- Highlights.cs
- AudioBase.cs
- CommandLineParser.cs
- BidOverLoads.cs
- LocalIdKeyIdentifierClause.cs
- OraclePermissionAttribute.cs
- BinaryMethodMessage.cs
- PriorityBinding.cs
- StatusBar.cs
- ObjectViewQueryResultData.cs
- PriorityQueue.cs
- CacheSection.cs
- QilTargetType.cs
- WrappedIUnknown.cs
- InstanceCollisionException.cs
- KeyInstance.cs
- SignatureToken.cs
- Rect.cs
- ModelItemKeyValuePair.cs
- DeclarativeCatalogPartDesigner.cs
- FontNameConverter.cs
- MatrixUtil.cs
- PersonalizationAdministration.cs
- MULTI_QI.cs
- LogicalTreeHelper.cs
- CustomErrorCollection.cs
- Point.cs
- RequestCache.cs
- SoapEnumAttribute.cs
- MiniMapControl.xaml.cs
- ProfileGroupSettings.cs
- TextServicesContext.cs
- MessageSecurityOverTcp.cs
- mediaclock.cs
- TaskDesigner.cs
- AsyncPostBackErrorEventArgs.cs
- AttributeCollection.cs
- DoubleStorage.cs
- RuleSettingsCollection.cs
- CodeBlockBuilder.cs
- ApplicationServicesHostFactory.cs
- WebPartZone.cs
- NamespaceQuery.cs
- HtmlShimManager.cs
- Popup.cs
- DesignerTextWriter.cs
- XmlComplianceUtil.cs
- NetPipeSectionData.cs
- DbUpdateCommandTree.cs
- DocumentsTrace.cs
- BindValidator.cs
- XsltLoader.cs
- GeometryHitTestResult.cs
- XmlSecureResolver.cs
- ArrayConverter.cs
- Context.cs
- ELinqQueryState.cs
- DragDropHelper.cs
- ShutDownListener.cs
- OraclePermissionAttribute.cs
- ObjectCloneHelper.cs
- CreateUserWizard.cs
- Config.cs
- DataGridSortCommandEventArgs.cs
- HtmlTextArea.cs
- ProvidersHelper.cs
- DBSqlParserTable.cs
- sortedlist.cs
- RoutedEventHandlerInfo.cs