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
- ReplyChannel.cs
- MessageDesigner.cs
- WebPartDesigner.cs
- RelationshipFixer.cs
- CellRelation.cs
- HTTPNotFoundHandler.cs
- RepeatButtonAutomationPeer.cs
- TextFormatterContext.cs
- IgnoreFileBuildProvider.cs
- InlineCollection.cs
- CollectionViewGroup.cs
- ExponentialEase.cs
- BooleanStorage.cs
- Empty.cs
- BitmapFrameEncode.cs
- SqlXmlStorage.cs
- RoutedEventValueSerializer.cs
- UdpDuplexChannel.cs
- BufferedMessageData.cs
- FlowDocumentReader.cs
- PreservationFileWriter.cs
- CommandHelper.cs
- ExpressionBindingsDialog.cs
- Msmq4PoisonHandler.cs
- RawMouseInputReport.cs
- PolicyVersionConverter.cs
- XmlAutoDetectWriter.cs
- LayoutTableCell.cs
- APCustomTypeDescriptor.cs
- FormsAuthentication.cs
- DetailsViewModeEventArgs.cs
- CounterCreationDataCollection.cs
- UpdateRecord.cs
- TableCellCollection.cs
- AppDomainFactory.cs
- DefaultValueAttribute.cs
- EventHandlersDesigner.cs
- NetDataContractSerializer.cs
- HoistedLocals.cs
- ExpressionContext.cs
- CounterCreationDataConverter.cs
- XmlBinaryReader.cs
- ItemMap.cs
- BamlRecordWriter.cs
- EditorPart.cs
- ArraySortHelper.cs
- SpeechSeg.cs
- ClaimTypeElementCollection.cs
- PreservationFileWriter.cs
- DataSvcMapFile.cs
- SaveFileDialogDesigner.cs
- Control.cs
- ContainerFilterService.cs
- UnsafeNativeMethods.cs
- TraceSection.cs
- StateWorkerRequest.cs
- NegationPusher.cs
- SeverityFilter.cs
- ThicknessAnimationBase.cs
- panel.cs
- XmlDigitalSignatureProcessor.cs
- SocketSettings.cs
- ValidatedControlConverter.cs
- BufferedReceiveManager.cs
- UnsafeNativeMethods.cs
- StdValidatorsAndConverters.cs
- SpeakInfo.cs
- DbConnectionPool.cs
- ErrorEventArgs.cs
- DBSchemaTable.cs
- PngBitmapEncoder.cs
- HandledMouseEvent.cs
- ErrorInfoXmlDocument.cs
- TransactionFilter.cs
- SingleTagSectionHandler.cs
- TypeGenericEnumerableViewSchema.cs
- ping.cs
- OracleDataAdapter.cs
- ScrollItemPatternIdentifiers.cs
- ContainerAction.cs
- SQLCharsStorage.cs
- DocumentDesigner.cs
- ExtendedProtectionPolicyElement.cs
- WizardStepBase.cs
- BamlBinaryReader.cs
- BitmapEffectGeneralTransform.cs
- StickyNote.cs
- DisplayInformation.cs
- TextRangeEdit.cs
- ProgressChangedEventArgs.cs
- ClientCultureInfo.cs
- CloudCollection.cs
- HttpPostProtocolImporter.cs
- PropertyDescriptor.cs
- EntityDataSourceStatementEditorForm.cs
- Evidence.cs
- _AutoWebProxyScriptHelper.cs
- MSG.cs
- Substitution.cs
- PopupEventArgs.cs