Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeIdentifier.cs
- GridEntryCollection.cs
- AssemblyName.cs
- PaperSource.cs
- QueryOptionExpression.cs
- StrongNameIdentityPermission.cs
- TransportSecurityProtocol.cs
- OletxDependentTransaction.cs
- UserControlParser.cs
- ExternalException.cs
- XmlSchemaDatatype.cs
- storepermission.cs
- SerializationAttributes.cs
- ToolboxCategoryItems.cs
- PropertyPushdownHelper.cs
- Graph.cs
- CacheSection.cs
- Overlapped.cs
- TableDetailsCollection.cs
- NaturalLanguageHyphenator.cs
- NameNode.cs
- XmlHelper.cs
- DelegatingStream.cs
- MouseActionValueSerializer.cs
- EntryPointNotFoundException.cs
- TypefaceMap.cs
- RectKeyFrameCollection.cs
- AstTree.cs
- Int64Converter.cs
- WebPartMinimizeVerb.cs
- StylusCollection.cs
- LinqDataSourceSelectEventArgs.cs
- RoleGroupCollection.cs
- ToolStripItemCollection.cs
- TextEncodedRawTextWriter.cs
- ErrorView.xaml.cs
- SessionIDManager.cs
- AnnouncementSendsAsyncResult.cs
- CreateSequenceResponse.cs
- ProxyWebPart.cs
- DetailsViewInsertEventArgs.cs
- DbProviderFactories.cs
- PropertyGrid.cs
- ResXFileRef.cs
- PtsContext.cs
- XamlVector3DCollectionSerializer.cs
- JournalNavigationScope.cs
- DrawingDrawingContext.cs
- ImagingCache.cs
- XmlStreamStore.cs
- ComboBox.cs
- MetaModel.cs
- BamlTreeMap.cs
- EmptyCollection.cs
- RegexStringValidator.cs
- IsolatedStorageFileStream.cs
- MeasurementDCInfo.cs
- CriticalExceptions.cs
- HtmlImage.cs
- ActivityExecutorSurrogate.cs
- WebPartDeleteVerb.cs
- InvalidDocumentContentsException.cs
- WorkflowMessageEventArgs.cs
- SkipStoryboardToFill.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- KeyEventArgs.cs
- RecordManager.cs
- oledbconnectionstring.cs
- DbMetaDataCollectionNames.cs
- AsymmetricSignatureDeformatter.cs
- ClonableStack.cs
- WorkflowPageSetupDialog.cs
- TrackingProfile.cs
- ScriptingProfileServiceSection.cs
- WebPartDescription.cs
- FormViewInsertedEventArgs.cs
- DbDataRecord.cs
- ContainerSelectorBehavior.cs
- Compiler.cs
- GuidConverter.cs
- D3DImage.cs
- Selector.cs
- SinglePageViewer.cs
- CodeVariableDeclarationStatement.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- BasicAsyncResult.cs
- UriScheme.cs
- DisableDpiAwarenessAttribute.cs
- TCPListener.cs
- DocumentSequence.cs
- SettingsPropertyValueCollection.cs
- RowUpdatingEventArgs.cs
- ThicknessConverter.cs
- DesignSurfaceEvent.cs
- MessageQueueInstaller.cs
- ParserContext.cs
- GlyphsSerializer.cs
- StylusShape.cs
- DesignOnlyAttribute.cs
- HttpResponse.cs