Code:
/ 4.0 / 4.0 / 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. 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
- ExtenderControl.cs
- Menu.cs
- ZipIOExtraFieldZip64Element.cs
- PersistStreamTypeWrapper.cs
- SqlOuterApplyReducer.cs
- indexingfiltermarshaler.cs
- SequenceQuery.cs
- CanonicalFontFamilyReference.cs
- ThicknessAnimation.cs
- Color.cs
- SqlFlattener.cs
- HttpRequestCacheValidator.cs
- TrackingProvider.cs
- SignatureToken.cs
- XsdBuilder.cs
- QilXmlWriter.cs
- AuthorizationRuleCollection.cs
- DataBinder.cs
- HostingPreferredMapPath.cs
- BinarySecretKeyIdentifierClause.cs
- BamlStream.cs
- GuidConverter.cs
- AdRotator.cs
- WorkflowRuntimeEndpoint.cs
- SelectionRangeConverter.cs
- InputScopeConverter.cs
- PasswordBoxAutomationPeer.cs
- ProcessInputEventArgs.cs
- ClientBuildManagerCallback.cs
- TraceListener.cs
- WindowsAltTab.cs
- AdPostCacheSubstitution.cs
- AsyncCompletedEventArgs.cs
- PixelShader.cs
- References.cs
- ControlIdConverter.cs
- ElementProxy.cs
- SchemaObjectWriter.cs
- CodeCommentStatementCollection.cs
- ResourceContainerWrapper.cs
- UnionCodeGroup.cs
- MetadataExchangeBindings.cs
- CompoundFileStorageReference.cs
- RegexWriter.cs
- EntityUtil.cs
- HttpCapabilitiesEvaluator.cs
- UnsafeNativeMethods.cs
- _TLSstream.cs
- Duration.cs
- Logging.cs
- GlobalizationSection.cs
- PathFigureCollectionValueSerializer.cs
- PackWebRequestFactory.cs
- TableCellCollection.cs
- DataTableNewRowEvent.cs
- InvalidCastException.cs
- TdsValueSetter.cs
- QilBinary.cs
- RowUpdatingEventArgs.cs
- FtpRequestCacheValidator.cs
- WebPartActionVerb.cs
- TemplateKeyConverter.cs
- HttpPostedFileBase.cs
- SmtpNegotiateAuthenticationModule.cs
- UnsignedPublishLicense.cs
- Dispatcher.cs
- DelegatingMessage.cs
- PropertyRecord.cs
- AdRotator.cs
- Claim.cs
- relpropertyhelper.cs
- Renderer.cs
- TabItemWrapperAutomationPeer.cs
- XmlSerializableServices.cs
- PhysicalAddress.cs
- WindowsStatusBar.cs
- UIElement.cs
- TabletCollection.cs
- Convert.cs
- UInt64.cs
- DataRowComparer.cs
- ToolStripMenuItem.cs
- SurrogateSelector.cs
- ActivityBuilder.cs
- ValidatorUtils.cs
- SecuritySessionFilter.cs
- PropertyToken.cs
- RegistryDataKey.cs
- SortExpressionBuilder.cs
- WebBrowsableAttribute.cs
- ExtenderHelpers.cs
- ServiceX509SecurityTokenProvider.cs
- SemanticAnalyzer.cs
- AnimationException.cs
- Win32MouseDevice.cs
- Nodes.cs
- TimeSpan.cs
- Error.cs
- UserControlCodeDomTreeGenerator.cs
- TextTreeInsertElementUndoUnit.cs