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
- ResetableIterator.cs
- ResourceExpressionBuilder.cs
- InteropBitmapSource.cs
- _LoggingObject.cs
- RetrieveVirtualItemEventArgs.cs
- Monitor.cs
- AssertFilter.cs
- Coordinator.cs
- XmlSerializableServices.cs
- ViewCellRelation.cs
- GridView.cs
- FixedSOMTableRow.cs
- FontInfo.cs
- TrackBarRenderer.cs
- X509Extension.cs
- SqlDependencyListener.cs
- WindowsTab.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- ExtensionWindow.cs
- StringFreezingAttribute.cs
- VariantWrapper.cs
- WinFormsComponentEditor.cs
- ProtocolsSection.cs
- GACMembershipCondition.cs
- TemplateInstanceAttribute.cs
- MasterPage.cs
- DecoderNLS.cs
- ServiceHttpHandlerFactory.cs
- RenderDataDrawingContext.cs
- CompositeActivityMarkupSerializer.cs
- EntitySqlQueryCacheKey.cs
- DeferredElementTreeState.cs
- BindingNavigator.cs
- EntityProviderServices.cs
- BufferedWebEventProvider.cs
- ClaimTypeElement.cs
- DocumentPage.cs
- XmlIncludeAttribute.cs
- DynamicAttribute.cs
- DataError.cs
- GlobalEventManager.cs
- XPathNodeList.cs
- SqlWebEventProvider.cs
- HealthMonitoringSectionHelper.cs
- returneventsaver.cs
- RoutedPropertyChangedEventArgs.cs
- XsdBuilder.cs
- ExpressionDumper.cs
- SqlDependencyUtils.cs
- MissingFieldException.cs
- RepeatButton.cs
- Animatable.cs
- MSAAWinEventWrap.cs
- UIElement3DAutomationPeer.cs
- EntitySetBase.cs
- AncestorChangedEventArgs.cs
- ViewBox.cs
- NativeMethods.cs
- ScriptingJsonSerializationSection.cs
- ObjectListComponentEditor.cs
- PipeStream.cs
- StringHandle.cs
- DrawListViewItemEventArgs.cs
- DropShadowBitmapEffect.cs
- RotateTransform3D.cs
- TransactionManager.cs
- CalendarModeChangedEventArgs.cs
- Hex.cs
- smtpconnection.cs
- Selection.cs
- ResourceManager.cs
- ContractListAdapter.cs
- XAMLParseException.cs
- ProcessHostConfigUtils.cs
- GridItemPatternIdentifiers.cs
- datacache.cs
- AttributeExtensions.cs
- graph.cs
- SqlProfileProvider.cs
- AddingNewEventArgs.cs
- MessageEncodingBindingElement.cs
- ExcCanonicalXml.cs
- _LoggingObject.cs
- ManualResetEvent.cs
- HttpModulesSection.cs
- DataServiceRequestArgs.cs
- ErrorFormatterPage.cs
- AutoGeneratedFieldProperties.cs
- ReadWriteObjectLock.cs
- EnterpriseServicesHelper.cs
- BaseHashHelper.cs
- ObfuscateAssemblyAttribute.cs
- CalendarDay.cs
- StatusStrip.cs
- FreezableDefaultValueFactory.cs
- Latin1Encoding.cs
- securitycriticaldataClass.cs
- PointAnimationBase.cs
- Misc.cs
- StringResourceManager.cs