Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XPathParser.cs
- PageBreakRecord.cs
- Thickness.cs
- IdnElement.cs
- CustomCategoryAttribute.cs
- PasswordDeriveBytes.cs
- DataFieldConverter.cs
- DynamicMetaObject.cs
- ToolStripItemImageRenderEventArgs.cs
- OdbcParameterCollection.cs
- ObjectNavigationPropertyMapping.cs
- TypeContext.cs
- HyperLinkColumn.cs
- DesignColumn.cs
- AbstractExpressions.cs
- RightsManagementEncryptionTransform.cs
- CompareValidator.cs
- PreservationFileWriter.cs
- BreakRecordTable.cs
- WindowsFont.cs
- WinEventWrap.cs
- BamlRecordWriter.cs
- PropertyMapper.cs
- UriSection.cs
- RepeaterCommandEventArgs.cs
- SpecularMaterial.cs
- ExpressionCopier.cs
- ConsumerConnectionPoint.cs
- ElementMarkupObject.cs
- COM2TypeInfoProcessor.cs
- AnalyzedTree.cs
- SqlDataSourceStatusEventArgs.cs
- DataGrid.cs
- UpdateExpressionVisitor.cs
- SqlLiftIndependentRowExpressions.cs
- SqlColumnizer.cs
- WorkflowTransactionService.cs
- FrameAutomationPeer.cs
- ConfigurationFileMap.cs
- ReadOnlyHierarchicalDataSource.cs
- Drawing.cs
- ListViewItemSelectionChangedEvent.cs
- LoginDesignerUtil.cs
- XmlRawWriter.cs
- RectangleConverter.cs
- Nodes.cs
- GridLengthConverter.cs
- XmlAnyElementAttribute.cs
- BadImageFormatException.cs
- ByteStream.cs
- CapabilitiesUse.cs
- LZCodec.cs
- ObjectQueryProvider.cs
- ObservableDictionary.cs
- SafeCertificateContext.cs
- TreeNodeCollectionEditorDialog.cs
- NativeConfigurationLoader.cs
- PublisherMembershipCondition.cs
- MenuItemBinding.cs
- MenuItem.cs
- Debug.cs
- CompilationSection.cs
- StringUtil.cs
- SBCSCodePageEncoding.cs
- MasterPageParser.cs
- webclient.cs
- Itemizer.cs
- DATA_BLOB.cs
- EditorAttribute.cs
- ProvidersHelper.cs
- ListDataHelper.cs
- LambdaCompiler.Logical.cs
- LoginName.cs
- HtmlAnchor.cs
- _ServiceNameStore.cs
- SimpleType.cs
- DesignerActionItem.cs
- RangeContentEnumerator.cs
- FileInfo.cs
- HttpRuntimeSection.cs
- SqlNodeAnnotation.cs
- SQLStringStorage.cs
- CodeFieldReferenceExpression.cs
- XmlDictionaryReaderQuotas.cs
- TemplateApplicationHelper.cs
- Mapping.cs
- PrintController.cs
- _WinHttpWebProxyDataBuilder.cs
- RelatedImageListAttribute.cs
- XmlSchemaSimpleTypeList.cs
- ElementsClipboardData.cs
- XhtmlBasicSelectionListAdapter.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- DbTypeMap.cs
- InputScope.cs
- OutputCacheSettingsSection.cs
- InvalidOleVariantTypeException.cs
- ObfuscateAssemblyAttribute.cs
- PersistChildrenAttribute.cs
- SafeRightsManagementHandle.cs