Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- UnitySerializationHolder.cs
- WindowsFormsSectionHandler.cs
- Matrix3D.cs
- BindingValueChangedEventArgs.cs
- FragmentQueryKB.cs
- ScriptControl.cs
- FormParameter.cs
- ReaderWriterLock.cs
- SpellerError.cs
- XmlBindingWorker.cs
- CreateUserWizardAutoFormat.cs
- SqlDataSourceCache.cs
- CodeGenerator.cs
- ConfigurationElementProperty.cs
- DataSourceView.cs
- PerformanceCounter.cs
- SizeConverter.cs
- NativeMethods.cs
- SimpleBitVector32.cs
- DbProviderFactories.cs
- DocumentCollection.cs
- RegisteredHiddenField.cs
- ListBoxAutomationPeer.cs
- SqlRetyper.cs
- CultureInfo.cs
- HyperLink.cs
- BamlLocalizationDictionary.cs
- PropertyItem.cs
- SecurityAttributeGenerationHelper.cs
- GeometryValueSerializer.cs
- ExpressionNode.cs
- DeflateInput.cs
- BitVector32.cs
- ObjectIDGenerator.cs
- SimpleColumnProvider.cs
- RNGCryptoServiceProvider.cs
- RealProxy.cs
- sqlpipe.cs
- ipaddressinformationcollection.cs
- util.cs
- AdapterDictionary.cs
- DesignerOptionService.cs
- XmlArrayAttribute.cs
- Light.cs
- ExtensionDataObject.cs
- PartialClassGenerationTaskInternal.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- StoreItemCollection.cs
- BrowserTree.cs
- MenuItemCollectionEditor.cs
- ClaimTypes.cs
- FastPropertyAccessor.cs
- ImageMapEventArgs.cs
- HttpsHostedTransportConfiguration.cs
- AudioFormatConverter.cs
- ThicknessConverter.cs
- ScriptMethodAttribute.cs
- PropertyRecord.cs
- CounterSample.cs
- LogManagementAsyncResult.cs
- ReturnType.cs
- Missing.cs
- PenLineJoinValidation.cs
- JsonFormatMapping.cs
- SqlConnectionPoolGroupProviderInfo.cs
- RegexParser.cs
- WebPartPersonalization.cs
- SortExpressionBuilder.cs
- NullReferenceException.cs
- HttpProcessUtility.cs
- CodeMemberMethod.cs
- NodeFunctions.cs
- SecurityUniqueId.cs
- DataProtection.cs
- SrgsText.cs
- TextureBrush.cs
- ByteConverter.cs
- RPIdentityRequirement.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- FontNamesConverter.cs
- TypeBuilderInstantiation.cs
- StorageSetMapping.cs
- Page.cs
- AttributeInfo.cs
- RadioButton.cs
- X509ChainElement.cs
- InternalTypeHelper.cs
- MethodBody.cs
- FileLogRecordHeader.cs
- WrappedIUnknown.cs
- LockedActivityGlyph.cs
- StylusPlugin.cs
- DecimalAnimationBase.cs
- RuleSettings.cs
- LogConverter.cs
- TypeValidationEventArgs.cs
- DataContractSerializerMessageContractImporter.cs
- UmAlQuraCalendar.cs
- SystemBrushes.cs
- FillRuleValidation.cs