Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FormViewInsertEventArgs.cs
- Empty.cs
- Error.cs
- Matrix.cs
- TextCollapsingProperties.cs
- DataGridAddNewRow.cs
- XPathNodeInfoAtom.cs
- Keywords.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- DayRenderEvent.cs
- MessageDecoder.cs
- DecimalConverter.cs
- Effect.cs
- AnchoredBlock.cs
- HotCommands.cs
- GridViewEditEventArgs.cs
- NotSupportedException.cs
- SecurityTokenValidationException.cs
- RightsManagementInformation.cs
- processwaithandle.cs
- Rss20FeedFormatter.cs
- QilParameter.cs
- UIElementIsland.cs
- InlineCollection.cs
- Serializer.cs
- BuildProviderCollection.cs
- ThreadNeutralSemaphore.cs
- FileLogRecordEnumerator.cs
- UIntPtr.cs
- DockAndAnchorLayout.cs
- FutureFactory.cs
- DoubleStorage.cs
- PreviewPageInfo.cs
- ResourceReferenceExpression.cs
- SqlFunctionAttribute.cs
- TcpAppDomainProtocolHandler.cs
- BrowserCapabilitiesFactory.cs
- HtmlLabelAdapter.cs
- WebRequestModulesSection.cs
- XmlnsCache.cs
- ModuleElement.cs
- XMLUtil.cs
- ToolStripItemTextRenderEventArgs.cs
- PerformanceCounterTraceRecord.cs
- ClassHandlersStore.cs
- UInt32Storage.cs
- DiscoveryClientReferences.cs
- TemplateBaseAction.cs
- ViewSimplifier.cs
- TabControl.cs
- GetTokenRequest.cs
- DataSetSchema.cs
- AllMembershipCondition.cs
- VersionedStreamOwner.cs
- SparseMemoryStream.cs
- DataPagerCommandEventArgs.cs
- WorkflowDurableInstance.cs
- GeneralTransform3DTo2DTo3D.cs
- AnimatedTypeHelpers.cs
- ArrayWithOffset.cs
- HandlerBase.cs
- CheckBox.cs
- SystemIPv4InterfaceProperties.cs
- JapaneseCalendar.cs
- LoginCancelEventArgs.cs
- DoubleUtil.cs
- BufferedGraphicsContext.cs
- DataList.cs
- ImageListUtils.cs
- GcHandle.cs
- DocumentPageView.cs
- TempFiles.cs
- ZipIOLocalFileDataDescriptor.cs
- Material.cs
- AliasGenerator.cs
- DecoratedNameAttribute.cs
- HeaderedItemsControl.cs
- PropertyKey.cs
- Timer.cs
- WindowsStatusBar.cs
- SecurityStateEncoder.cs
- initElementDictionary.cs
- Canvas.cs
- ProfileInfo.cs
- EventLogEntry.cs
- DisableDpiAwarenessAttribute.cs
- SqlDataReader.cs
- XmlSchemaAnnotation.cs
- BmpBitmapEncoder.cs
- GACIdentityPermission.cs
- SimpleWorkerRequest.cs
- PeerEndPoint.cs
- DataTableExtensions.cs
- CounterSample.cs
- DataGridCaption.cs
- UpdatePanelControlTrigger.cs
- recordstatefactory.cs
- TextRangeSerialization.cs
- MemberDomainMap.cs
- RoleManagerEventArgs.cs