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
- SrgsElementFactory.cs
- UrlPath.cs
- NamespaceMapping.cs
- Transform.cs
- ScalarConstant.cs
- Style.cs
- TextTreeObjectNode.cs
- EventProviderWriter.cs
- HttpApplicationFactory.cs
- SecurityException.cs
- MetadataItem.cs
- XmlSignificantWhitespace.cs
- SchemaHelper.cs
- ExtensibleClassFactory.cs
- MatrixValueSerializer.cs
- QilIterator.cs
- PopupRoot.cs
- ConsoleCancelEventArgs.cs
- NamespaceInfo.cs
- MetadataItemEmitter.cs
- ToolStripPanelSelectionGlyph.cs
- Propagator.cs
- HttpGetClientProtocol.cs
- AnnotationResource.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- ToolStripMenuItem.cs
- TypeExtensionConverter.cs
- AQNBuilder.cs
- AttributeInfo.cs
- MessageEventSubscriptionService.cs
- RemoteWebConfigurationHost.cs
- GenericUriParser.cs
- WebPartRestoreVerb.cs
- MergeFilterQuery.cs
- GZipDecoder.cs
- MenuBase.cs
- ListGeneralPage.cs
- PerfCounters.cs
- ItemsChangedEventArgs.cs
- XmlAttributeOverrides.cs
- COM2ExtendedUITypeEditor.cs
- SettingsSection.cs
- HandlerBase.cs
- TreeNodeCollection.cs
- Pkcs7Recipient.cs
- DataSourceHelper.cs
- HttpRawResponse.cs
- ConcatQueryOperator.cs
- Rule.cs
- WsdlImporterElementCollection.cs
- XmlNamedNodeMap.cs
- log.cs
- SHA512Managed.cs
- ListViewPagedDataSource.cs
- RuntimeEnvironment.cs
- PersonalizationProviderHelper.cs
- ReservationNotFoundException.cs
- StatusBarPanel.cs
- DataGridBeginningEditEventArgs.cs
- complextypematerializer.cs
- SqlFileStream.cs
- SocketPermission.cs
- HtmlInputCheckBox.cs
- DataServiceConfiguration.cs
- DbException.cs
- XmlDocumentFragment.cs
- TokenizerHelper.cs
- ErrorFormatterPage.cs
- ToolStripSystemRenderer.cs
- ConstantProjectedSlot.cs
- TlsSspiNegotiation.cs
- AtomContentProperty.cs
- ContainsRowNumberChecker.cs
- ColorConvertedBitmapExtension.cs
- DocumentGridPage.cs
- FlowDocumentPaginator.cs
- XsltOutput.cs
- StructuredTypeInfo.cs
- SelectionProviderWrapper.cs
- TextDecorationLocationValidation.cs
- TemplateControlCodeDomTreeGenerator.cs
- MatrixKeyFrameCollection.cs
- EntityAdapter.cs
- WorkflowPersistenceContext.cs
- XslVisitor.cs
- SettingsContext.cs
- WebBrowserSiteBase.cs
- HtmlLabelAdapter.cs
- HostedTcpTransportManager.cs
- DataGridItemAttachedStorage.cs
- UrlMapping.cs
- EdmFunction.cs
- IArgumentProvider.cs
- PrincipalPermission.cs
- SafeIUnknown.cs
- BigInt.cs
- BufferBuilder.cs
- EntityContainerEmitter.cs
- DocumentXPathNavigator.cs
- _ConnectOverlappedAsyncResult.cs