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
- EntityDataSourceChangingEventArgs.cs
- CacheDependency.cs
- Unit.cs
- ColorAnimationBase.cs
- UxThemeWrapper.cs
- CodeTryCatchFinallyStatement.cs
- EventLogEntryCollection.cs
- RSAOAEPKeyExchangeFormatter.cs
- XpsSerializerFactory.cs
- HwndStylusInputProvider.cs
- SQLDateTimeStorage.cs
- NetCodeGroup.cs
- ContainsRowNumberChecker.cs
- GPPOINTF.cs
- CapabilitiesState.cs
- HttpCapabilitiesSectionHandler.cs
- MSG.cs
- WrappingXamlSchemaContext.cs
- Stroke2.cs
- NetworkInformationPermission.cs
- EntityWrapperFactory.cs
- ObfuscateAssemblyAttribute.cs
- Roles.cs
- AnnotationDocumentPaginator.cs
- StringBuilder.cs
- SqlDataSourceSummaryPanel.cs
- ActivityCodeDomSerializer.cs
- CryptographicAttribute.cs
- X509ClientCertificateAuthentication.cs
- OleAutBinder.cs
- ProcessRequestArgs.cs
- ProcessModule.cs
- SafeNativeMethodsCLR.cs
- SponsorHelper.cs
- ResXBuildProvider.cs
- RepeatButtonAutomationPeer.cs
- documentation.cs
- MarkupCompiler.cs
- XmlException.cs
- WebPartMovingEventArgs.cs
- COSERVERINFO.cs
- AssertFilter.cs
- SafeHandle.cs
- WebControlAdapter.cs
- WebPartManagerInternals.cs
- ClientSettingsStore.cs
- PinProtectionHelper.cs
- DatePickerTextBox.cs
- AmbientLight.cs
- FontDifferentiator.cs
- PkcsMisc.cs
- MsmqIntegrationOutputChannel.cs
- UriSection.cs
- DrawingImage.cs
- Constraint.cs
- GenerateScriptTypeAttribute.cs
- NavigationProgressEventArgs.cs
- ProviderIncompatibleException.cs
- XhtmlBasicTextViewAdapter.cs
- RelatedCurrencyManager.cs
- CompilationUnit.cs
- WsdlContractConversionContext.cs
- WasNotInstalledException.cs
- XmlResolver.cs
- ScriptReferenceEventArgs.cs
- Run.cs
- LoadedOrUnloadedOperation.cs
- EntityWrapper.cs
- XmlChoiceIdentifierAttribute.cs
- SqlDataReaderSmi.cs
- Attribute.cs
- WebPartUserCapability.cs
- DrawListViewSubItemEventArgs.cs
- _ServiceNameStore.cs
- XmlNamedNodeMap.cs
- PackageRelationship.cs
- ScriptManager.cs
- VerticalAlignConverter.cs
- ScriptManager.cs
- PackWebRequestFactory.cs
- XmlKeywords.cs
- ImpersonateTokenRef.cs
- Ppl.cs
- StringToken.cs
- CallId.cs
- COSERVERINFO.cs
- SoundPlayer.cs
- TextInfo.cs
- DayRenderEvent.cs
- SecurityTokenException.cs
- IMembershipProvider.cs
- ToolStripSplitButton.cs
- StyleCollectionEditor.cs
- Matrix3DValueSerializer.cs
- NamedPipeAppDomainProtocolHandler.cs
- _CommandStream.cs
- Keyboard.cs
- DragEvent.cs
- AutoResizedEvent.cs
- TextBoxLine.cs