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
- TextSelectionHighlightLayer.cs
- ListenerElementsCollection.cs
- CacheEntry.cs
- SparseMemoryStream.cs
- _HelperAsyncResults.cs
- FunctionImportMapping.cs
- ConfigurationProperty.cs
- MachineKeySection.cs
- Events.cs
- XmlNode.cs
- CharacterMetricsDictionary.cs
- ArithmeticException.cs
- WebPartConnectionsCloseVerb.cs
- ObjectViewEntityCollectionData.cs
- SerializationInfo.cs
- HttpCachePolicyBase.cs
- ToolStripRendererSwitcher.cs
- ToolZone.cs
- HttpResponseInternalWrapper.cs
- PageCatalogPart.cs
- BoundColumn.cs
- HtmlTitle.cs
- HttpHostedTransportConfiguration.cs
- CellCreator.cs
- CopyOfAction.cs
- DbParameterCollectionHelper.cs
- documentsequencetextview.cs
- Empty.cs
- ToolStripContainerActionList.cs
- SqlColumnizer.cs
- HashCodeCombiner.cs
- Error.cs
- CroppedBitmap.cs
- MessageAction.cs
- ThousandthOfEmRealDoubles.cs
- DetailsViewPagerRow.cs
- DbConnectionFactory.cs
- _HeaderInfoTable.cs
- SqlDelegatedTransaction.cs
- DataGridItemEventArgs.cs
- DirectoryLocalQuery.cs
- LoginUtil.cs
- AbandonedMutexException.cs
- SamlNameIdentifierClaimResource.cs
- ImageListStreamer.cs
- ClientFormsIdentity.cs
- NativeMethods.cs
- TextParagraphProperties.cs
- BevelBitmapEffect.cs
- Normalization.cs
- CodeStatement.cs
- GridSplitterAutomationPeer.cs
- BufferedGraphicsContext.cs
- SqlUtils.cs
- BitmapEffect.cs
- WebExceptionStatus.cs
- TimeSpanHelper.cs
- WorkflowMarkupSerializerMapping.cs
- ScriptResourceDefinition.cs
- PartManifestEntry.cs
- StringSorter.cs
- ConfigurationHelpers.cs
- BehaviorEditorPart.cs
- NameTable.cs
- XsltSettings.cs
- MD5Cng.cs
- SharedStatics.cs
- XmlSchemaAll.cs
- BuildProvidersCompiler.cs
- MeasureItemEvent.cs
- MissingMethodException.cs
- AttachedAnnotationChangedEventArgs.cs
- SqlServices.cs
- ActiveXSite.cs
- StdRegProviderWrapper.cs
- MenuItemStyleCollection.cs
- PermissionListSet.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- TextAutomationPeer.cs
- TextElement.cs
- TrustManagerMoreInformation.cs
- Storyboard.cs
- WindowsRichEditRange.cs
- Module.cs
- NamedPermissionSet.cs
- BitmapEffectState.cs
- PrivateFontCollection.cs
- KnowledgeBase.cs
- XamlContextStack.cs
- PrimitiveSchema.cs
- DrawListViewSubItemEventArgs.cs
- ErrorActivity.cs
- GeneralTransform2DTo3DTo2D.cs
- VisualStates.cs
- Stylesheet.cs
- ChannelCacheSettings.cs
- ControlIdConverter.cs
- EventHandlerService.cs
- ButtonFieldBase.cs
- WindowsStatusBar.cs