Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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. 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
- NetNamedPipeSecurity.cs
- CharKeyFrameCollection.cs
- HwndTarget.cs
- TextServicesCompartment.cs
- Int32RectValueSerializer.cs
- WhitespaceRule.cs
- HashAlgorithm.cs
- Calendar.cs
- ScrollChrome.cs
- HttpCapabilitiesSectionHandler.cs
- StaticFileHandler.cs
- WebHostScriptMappingsInstallComponent.cs
- OracleParameterCollection.cs
- CallTemplateAction.cs
- TableItemStyle.cs
- Preprocessor.cs
- LogRecordSequence.cs
- SQLString.cs
- EnumerationRangeValidationUtil.cs
- BeginSelectCardRequest.cs
- DictionarySurrogate.cs
- WeakReferenceList.cs
- ClientUtils.cs
- FileDialog_Vista_Interop.cs
- MasterPageCodeDomTreeGenerator.cs
- JsonFormatWriterGenerator.cs
- FileUpload.cs
- AnimatedTypeHelpers.cs
- ResourceDictionary.cs
- CheckBoxFlatAdapter.cs
- HijriCalendar.cs
- SiteMapNodeItemEventArgs.cs
- ImmutableCollection.cs
- ContainerSelectorActiveEvent.cs
- GenericAuthenticationEventArgs.cs
- TypeResolvingOptions.cs
- ImpersonationContext.cs
- TablePattern.cs
- Barrier.cs
- OdbcEnvironment.cs
- AlignmentYValidation.cs
- XmlQueryTypeFactory.cs
- HttpValueCollection.cs
- XamlBrushSerializer.cs
- ToolConsole.cs
- DefaultValueAttribute.cs
- MembershipValidatePasswordEventArgs.cs
- SimpleTextLine.cs
- OleDbRowUpdatingEvent.cs
- OleDbInfoMessageEvent.cs
- PerformanceCounterLib.cs
- X509SecurityTokenProvider.cs
- QueryExpr.cs
- UnmanagedMemoryStreamWrapper.cs
- DummyDataSource.cs
- InputMethodStateTypeInfo.cs
- TextPointer.cs
- WindowsButton.cs
- LineMetrics.cs
- SerialReceived.cs
- TagPrefixCollection.cs
- MouseGesture.cs
- ObjectDataProvider.cs
- BrowsableAttribute.cs
- RemotingConfigParser.cs
- OdbcUtils.cs
- CapabilitiesState.cs
- XamlFigureLengthSerializer.cs
- XhtmlBasicImageAdapter.cs
- TdsEnums.cs
- InternalMappingException.cs
- QuotedPairReader.cs
- CharacterMetrics.cs
- FileStream.cs
- LineInfo.cs
- InnerItemCollectionView.cs
- VirtualPathProvider.cs
- TreeViewHitTestInfo.cs
- ObjectTag.cs
- DataSysAttribute.cs
- BindingExpressionUncommonField.cs
- ContentElementAutomationPeer.cs
- InvalidWorkflowException.cs
- Internal.cs
- OleDbSchemaGuid.cs
- ContentElement.cs
- DashStyles.cs
- TemplatedMailWebEventProvider.cs
- ConfigXmlAttribute.cs
- XmlSchemaException.cs
- FixedPageAutomationPeer.cs
- FontConverter.cs
- SupportsEventValidationAttribute.cs
- TextSelectionProcessor.cs
- SymLanguageType.cs
- TraceData.cs
- QuestionEventArgs.cs
- EncodingTable.cs
- SchemaInfo.cs
- SettingsSavedEventArgs.cs