Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- HMACSHA256.cs
- ConfigUtil.cs
- HwndSubclass.cs
- HandlerMappingMemo.cs
- CodeAttributeArgument.cs
- GridViewRowEventArgs.cs
- FilterableAttribute.cs
- WindowShowOrOpenTracker.cs
- NullableConverter.cs
- ManifestBasedResourceGroveler.cs
- PersonalizationStateInfoCollection.cs
- RectAnimationUsingKeyFrames.cs
- EntityException.cs
- CodeArrayCreateExpression.cs
- ArgumentException.cs
- SoapTypeAttribute.cs
- CalendarDesigner.cs
- Pointer.cs
- TCPListener.cs
- DataListComponentEditor.cs
- WebPartVerb.cs
- HttpDictionary.cs
- ColumnMap.cs
- RegexTree.cs
- Drawing.cs
- SafePEFileHandle.cs
- counter.cs
- ProfileProvider.cs
- Compiler.cs
- CalendarTable.cs
- MonitoringDescriptionAttribute.cs
- SoapDocumentServiceAttribute.cs
- SchemaImporterExtensionElement.cs
- DbConnectionInternal.cs
- PropertyMap.cs
- DrawingVisualDrawingContext.cs
- ManifestBasedResourceGroveler.cs
- FontFamilyValueSerializer.cs
- ServiceDurableInstance.cs
- DataGrid.cs
- ListBox.cs
- TemplatedMailWebEventProvider.cs
- InputLangChangeRequestEvent.cs
- HtmlEmptyTagControlBuilder.cs
- StrokeCollectionConverter.cs
- ButtonFieldBase.cs
- CodeTypeMember.cs
- TextFormatterImp.cs
- WsatServiceCertificate.cs
- RichTextBox.cs
- KeyInfo.cs
- StyleSheet.cs
- RSACryptoServiceProvider.cs
- ListViewDataItem.cs
- ToolStripSplitButton.cs
- TaskFactory.cs
- PersianCalendar.cs
- SqlNode.cs
- ReadWriteSpinLock.cs
- SplineKeyFrames.cs
- SetterTriggerConditionValueConverter.cs
- _ListenerResponseStream.cs
- CodeTryCatchFinallyStatement.cs
- DataServiceRequestOfT.cs
- CrossContextChannel.cs
- COM2Enum.cs
- BamlRecords.cs
- StructuralObject.cs
- EnumerableWrapperWeakToStrong.cs
- NegotiationTokenProvider.cs
- WinEventWrap.cs
- Array.cs
- EditingScope.cs
- DistributedTransactionPermission.cs
- PropVariant.cs
- XamlClipboardData.cs
- DatagridviewDisplayedBandsData.cs
- StringBuilder.cs
- NameNode.cs
- Rect3D.cs
- Message.cs
- BehaviorEditorPart.cs
- EncoderReplacementFallback.cs
- PlatformNotSupportedException.cs
- WindowsTokenRoleProvider.cs
- RecipientIdentity.cs
- _AutoWebProxyScriptEngine.cs
- ProcessInputEventArgs.cs
- Symbol.cs
- XmlSchemaAnnotation.cs
- FileDialog.cs
- LocalizabilityAttribute.cs
- FileUtil.cs
- RelatedEnd.cs
- NavigatingCancelEventArgs.cs
- SystemIPAddressInformation.cs
- WindowsEditBoxRange.cs
- ReceiveReply.cs
- __Error.cs
- Preprocessor.cs