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
- VBCodeProvider.cs
- Pair.cs
- FacetChecker.cs
- RadioButtonBaseAdapter.cs
- AttachedPropertyMethodSelector.cs
- DataPagerFieldCommandEventArgs.cs
- ButtonRenderer.cs
- CodeCompileUnit.cs
- BlockCollection.cs
- DecoderExceptionFallback.cs
- MouseButton.cs
- MappingItemCollection.cs
- BaseConfigurationRecord.cs
- Model3D.cs
- DriveNotFoundException.cs
- UIElementIsland.cs
- RowSpanVector.cs
- BamlReader.cs
- SchemeSettingElement.cs
- ExceptionValidationRule.cs
- SynchronizedInputHelper.cs
- WindowsListViewItemStartMenu.cs
- TextView.cs
- TypeConverter.cs
- UIElementHelper.cs
- CodeLabeledStatement.cs
- PersonalizationProviderHelper.cs
- FamilyCollection.cs
- PeerEndPoint.cs
- GridToolTip.cs
- BuildDependencySet.cs
- RectAnimation.cs
- DtdParser.cs
- BufferAllocator.cs
- SQLGuid.cs
- CompiledScopeCriteria.cs
- TransformerInfo.cs
- SqlRetyper.cs
- SelectedPathEditor.cs
- TypedAsyncResult.cs
- TextStore.cs
- UnhandledExceptionEventArgs.cs
- UnmanagedHandle.cs
- ClientRoleProvider.cs
- ToolStripPanelRenderEventArgs.cs
- ExpandCollapseProviderWrapper.cs
- EventSinkActivityDesigner.cs
- ZipFileInfo.cs
- _NegoState.cs
- Keywords.cs
- LogWriteRestartAreaState.cs
- HotSpotCollectionEditor.cs
- HtmlElementEventArgs.cs
- RichTextBoxConstants.cs
- TextMetrics.cs
- DataControlCommands.cs
- ExtensionDataObject.cs
- SafeThreadHandle.cs
- ColumnBinding.cs
- FlowNode.cs
- SecurityElement.cs
- PagedDataSource.cs
- AvTraceDetails.cs
- EntityStoreSchemaFilterEntry.cs
- EventLogStatus.cs
- AppearanceEditorPart.cs
- SimpleTextLine.cs
- AutomationPatternInfo.cs
- NameValueCollection.cs
- ExecutionEngineException.cs
- Style.cs
- ExternalException.cs
- _SingleItemRequestCache.cs
- CodeTypeReferenceCollection.cs
- FormParameter.cs
- ComplexTypeEmitter.cs
- ComPlusDiagnosticTraceSchemas.cs
- ClaimSet.cs
- CheckedListBox.cs
- MouseOverProperty.cs
- DuplexChannelFactory.cs
- Clipboard.cs
- Expr.cs
- Size.cs
- SoapReflector.cs
- IBuiltInEvidence.cs
- Convert.cs
- ToolStripRendererSwitcher.cs
- DecimalMinMaxAggregationOperator.cs
- RowCache.cs
- SimpleWorkerRequest.cs
- DesignerDataSourceView.cs
- TraceSection.cs
- SectionInformation.cs
- StreamInfo.cs
- VisualProxy.cs
- OleDragDropHandler.cs
- InheritedPropertyChangedEventArgs.cs
- FieldNameLookup.cs
- SchemaAttDef.cs