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
- ViewKeyConstraint.cs
- XmlNavigatorStack.cs
- Positioning.cs
- URLIdentityPermission.cs
- CollectionMarkupSerializer.cs
- MeasurementDCInfo.cs
- DataGridViewCellLinkedList.cs
- SerializerDescriptor.cs
- METAHEADER.cs
- WebPartMinimizeVerb.cs
- ScriptBehaviorDescriptor.cs
- FunctionDefinition.cs
- Stylesheet.cs
- FixedTextSelectionProcessor.cs
- RichTextBoxConstants.cs
- TransformerConfigurationWizardBase.cs
- RolePrincipal.cs
- TypeDependencyAttribute.cs
- VisualProxy.cs
- AppDomain.cs
- SmtpFailedRecipientsException.cs
- FormatSettings.cs
- SqlStream.cs
- DataTrigger.cs
- RankException.cs
- DynamicFilter.cs
- UnsafeCollabNativeMethods.cs
- PhoneCallDesigner.cs
- SqlFunctionAttribute.cs
- ImmComposition.cs
- StructuredTypeEmitter.cs
- RuntimeVariablesExpression.cs
- activationcontext.cs
- UserValidatedEventArgs.cs
- DbException.cs
- HtmlTableRowCollection.cs
- CheckoutException.cs
- UnsafeNativeMethods.cs
- SafeRegistryHandle.cs
- ColorConverter.cs
- HelpInfo.cs
- ConcurrentQueue.cs
- IriParsingElement.cs
- LinearKeyFrames.cs
- LocalFileSettingsProvider.cs
- TextElement.cs
- DrawingGroup.cs
- WindowsSlider.cs
- TextBlockAutomationPeer.cs
- CharKeyFrameCollection.cs
- CompositeDuplexBindingElementImporter.cs
- CodePropertyReferenceExpression.cs
- TextAdaptor.cs
- HostProtectionException.cs
- RetriableClipboard.cs
- XmlILAnnotation.cs
- EncodingInfo.cs
- EnumDataContract.cs
- DataRow.cs
- PerspectiveCamera.cs
- BlurBitmapEffect.cs
- LabelEditEvent.cs
- PersonalizationEntry.cs
- ListViewContainer.cs
- GradientStop.cs
- IRCollection.cs
- BreadCrumbTextConverter.cs
- NumericUpDown.cs
- StylusButton.cs
- WinEventTracker.cs
- NativeMethods.cs
- DataControlField.cs
- SelectionPatternIdentifiers.cs
- TemplateGroupCollection.cs
- CalendarDesigner.cs
- DatePickerDateValidationErrorEventArgs.cs
- DecoratedNameAttribute.cs
- FactoryMaker.cs
- EdgeProfileValidation.cs
- WebPartConnectVerb.cs
- ResourceReader.cs
- DatePicker.cs
- ReflectionServiceProvider.cs
- Model3DGroup.cs
- RotateTransform3D.cs
- TimeBoundedCache.cs
- TdsParser.cs
- ControlIdConverter.cs
- TextSelectionHelper.cs
- RTLAwareMessageBox.cs
- Lasso.cs
- Image.cs
- Inline.cs
- DataContractFormatAttribute.cs
- SqlTypeSystemProvider.cs
- ScaleTransform3D.cs
- GAC.cs
- MetadataItemEmitter.cs
- SID.cs
- SortKey.cs