Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Automation / Peers / TreeViewItemAutomationPeer.cs / 1 / TreeViewItemAutomationPeer.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 class TreeViewItemAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, ISelectionItemProvider, IScrollItemProvider
{
///
public TreeViewItemAutomationPeer(TreeViewItem owner): base(owner)
{
}
///
override protected string GetClassNameCore()
{
return "TreeViewItem";
}
///
override protected AutomationControlType GetAutomationControlTypeCore()
{
return AutomationControlType.TreeItem;
}
///
override public object GetPattern(PatternInterface patternInterface)
{
if (patternInterface == PatternInterface.ExpandCollapse)
{
return this;
}
else if (patternInterface == PatternInterface.SelectionItem)
{
return this;
}
else if (patternInterface == PatternInterface.ScrollItem)
{
return this;
}
return null;
}
///
void IExpandCollapseProvider.Expand()
{
if(!IsEnabled())
throw new ElementNotEnabledException();
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (!treeViewItem.HasItems)
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
treeViewItem.IsExpanded = true;
}
///
void IExpandCollapseProvider.Collapse()
{
if(!IsEnabled())
throw new ElementNotEnabledException();
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (!treeViewItem.HasItems)
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
treeViewItem.IsExpanded = false;
}
ExpandCollapseState IExpandCollapseProvider.ExpandCollapseState
{
get
{
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (treeViewItem.HasItems)
return treeViewItem.IsExpanded ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed;
else
return ExpandCollapseState.LeafNode;
}
}
//
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
internal void RaiseExpandCollapseAutomationEvent(bool oldValue, bool newValue)
{
RaisePropertyChangedEvent(
ExpandCollapsePatternIdentifiers.ExpandCollapseStateProperty,
oldValue ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed,
newValue ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed);
}
#region ISelectionItemProvider
///
/// Selects this element, removing any other element from the selection.
///
void ISelectionItemProvider.Select()
{
((TreeViewItem)Owner).IsSelected = true;
}
///
/// Selects this item.
///
void ISelectionItemProvider.AddToSelection()
{
TreeView treeView = ((TreeViewItem)Owner).ParentTreeView;
// If TreeView already has a selected item different from current - we cannot add to selection and throw
if (treeView == null || (treeView.SelectedItem != null && treeView.SelectedContainer != Owner))
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
((TreeViewItem)Owner).IsSelected = true;
}
///
/// Unselects this item.
///
void ISelectionItemProvider.RemoveFromSelection()
{
((TreeViewItem)Owner).IsSelected = false;
}
///
/// Returns whether the item is selected.
///
bool ISelectionItemProvider.IsSelected
{
get
{
return ((TreeViewItem)Owner).IsSelected;
}
}
///
/// The logical element that supports the SelectionPattern for this item.
///
IRawElementProviderSimple ISelectionItemProvider.SelectionContainer
{
get
{
ItemsControl parent = ((TreeViewItem)Owner).ParentItemsControl;
if (parent != null)
{
AutomationPeer peer = UIElementAutomationPeer.FromElement(parent);
if (peer != null)
return ProviderFromPeer(peer);
}
return null;
}
}
void IScrollItemProvider.ScrollIntoView()
{
((TreeViewItem)Owner).BringIntoView();
}
//
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
internal void RaiseAutomationIsSelectedChanged(bool isSelected)
{
RaisePropertyChangedEvent(
SelectionItemPatternIdentifiers.IsSelectedProperty,
!isSelected,
isSelected);
}
#endregion
}
}
// 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 class TreeViewItemAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, ISelectionItemProvider, IScrollItemProvider
{
///
public TreeViewItemAutomationPeer(TreeViewItem owner): base(owner)
{
}
///
override protected string GetClassNameCore()
{
return "TreeViewItem";
}
///
override protected AutomationControlType GetAutomationControlTypeCore()
{
return AutomationControlType.TreeItem;
}
///
override public object GetPattern(PatternInterface patternInterface)
{
if (patternInterface == PatternInterface.ExpandCollapse)
{
return this;
}
else if (patternInterface == PatternInterface.SelectionItem)
{
return this;
}
else if (patternInterface == PatternInterface.ScrollItem)
{
return this;
}
return null;
}
///
void IExpandCollapseProvider.Expand()
{
if(!IsEnabled())
throw new ElementNotEnabledException();
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (!treeViewItem.HasItems)
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
treeViewItem.IsExpanded = true;
}
///
void IExpandCollapseProvider.Collapse()
{
if(!IsEnabled())
throw new ElementNotEnabledException();
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (!treeViewItem.HasItems)
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
treeViewItem.IsExpanded = false;
}
ExpandCollapseState IExpandCollapseProvider.ExpandCollapseState
{
get
{
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (treeViewItem.HasItems)
return treeViewItem.IsExpanded ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed;
else
return ExpandCollapseState.LeafNode;
}
}
//
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
internal void RaiseExpandCollapseAutomationEvent(bool oldValue, bool newValue)
{
RaisePropertyChangedEvent(
ExpandCollapsePatternIdentifiers.ExpandCollapseStateProperty,
oldValue ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed,
newValue ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed);
}
#region ISelectionItemProvider
///
/// Selects this element, removing any other element from the selection.
///
void ISelectionItemProvider.Select()
{
((TreeViewItem)Owner).IsSelected = true;
}
///
/// Selects this item.
///
void ISelectionItemProvider.AddToSelection()
{
TreeView treeView = ((TreeViewItem)Owner).ParentTreeView;
// If TreeView already has a selected item different from current - we cannot add to selection and throw
if (treeView == null || (treeView.SelectedItem != null && treeView.SelectedContainer != Owner))
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
((TreeViewItem)Owner).IsSelected = true;
}
///
/// Unselects this item.
///
void ISelectionItemProvider.RemoveFromSelection()
{
((TreeViewItem)Owner).IsSelected = false;
}
///
/// Returns whether the item is selected.
///
bool ISelectionItemProvider.IsSelected
{
get
{
return ((TreeViewItem)Owner).IsSelected;
}
}
///
/// The logical element that supports the SelectionPattern for this item.
///
IRawElementProviderSimple ISelectionItemProvider.SelectionContainer
{
get
{
ItemsControl parent = ((TreeViewItem)Owner).ParentItemsControl;
if (parent != null)
{
AutomationPeer peer = UIElementAutomationPeer.FromElement(parent);
if (peer != null)
return ProviderFromPeer(peer);
}
return null;
}
}
void IScrollItemProvider.ScrollIntoView()
{
((TreeViewItem)Owner).BringIntoView();
}
//
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
internal void RaiseAutomationIsSelectedChanged(bool isSelected)
{
RaisePropertyChangedEvent(
SelectionItemPatternIdentifiers.IsSelectedProperty,
!isSelected,
isSelected);
}
#endregion
}
}
// 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
- ProjectionQueryOptionExpression.cs
- PreloadedPackages.cs
- SortQuery.cs
- BooleanAnimationBase.cs
- PropertySourceInfo.cs
- EntityTypeBase.cs
- shaper.cs
- PackageDigitalSignatureManager.cs
- CipherData.cs
- MergeFilterQuery.cs
- TextSelectionHelper.cs
- TimeoutConverter.cs
- TextRange.cs
- DataGridViewComponentPropertyGridSite.cs
- PasswordBox.cs
- KnownTypesProvider.cs
- SingleStorage.cs
- PerformanceCounterPermissionAttribute.cs
- ImageCodecInfo.cs
- Trace.cs
- ExpressionBindingCollection.cs
- PropertyBuilder.cs
- XmlMessageFormatter.cs
- _BaseOverlappedAsyncResult.cs
- XmlSchemaAttribute.cs
- TypeExtensions.cs
- SqlMetaData.cs
- CurrentChangingEventManager.cs
- QilGeneratorEnv.cs
- Asn1IntegerConverter.cs
- sqlmetadatafactory.cs
- CancellationState.cs
- ActivationArguments.cs
- CriticalExceptions.cs
- NavigationService.cs
- GacUtil.cs
- HttpListenerContext.cs
- NetworkInterface.cs
- SqlCharStream.cs
- WmlImageAdapter.cs
- TabControlAutomationPeer.cs
- HandlerWithFactory.cs
- SqlDataSourceParameterParser.cs
- GPPOINTF.cs
- JpegBitmapDecoder.cs
- CompensableActivity.cs
- PageStatePersister.cs
- UnsafeNativeMethods.cs
- ProviderMetadata.cs
- TableItemPattern.cs
- HashAlgorithm.cs
- DataGridViewCellStyleConverter.cs
- ActiveXHelper.cs
- DecimalStorage.cs
- FullTextLine.cs
- LogLogRecordEnumerator.cs
- WorkflowLayouts.cs
- DescriptionCreator.cs
- RectKeyFrameCollection.cs
- Matrix3DValueSerializer.cs
- XmlILModule.cs
- HGlobalSafeHandle.cs
- DbConvert.cs
- GenericPrincipal.cs
- ExtensionDataReader.cs
- OutputCacheModule.cs
- TypeHelpers.cs
- UrlMappingsSection.cs
- DefaultCommandConverter.cs
- PromptStyle.cs
- InputMethod.cs
- AccessDataSourceView.cs
- TreeNodeBinding.cs
- _ScatterGatherBuffers.cs
- SqlDeflator.cs
- EventlogProvider.cs
- SqlFactory.cs
- UriParserTemplates.cs
- OperationPickerDialog.cs
- CryptoProvider.cs
- SkipStoryboardToFill.cs
- ExtenderProvidedPropertyAttribute.cs
- QueueProcessor.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- StringSorter.cs
- DataServiceQueryProvider.cs
- TextDecorationCollection.cs
- MachineKeySection.cs
- ColumnCollection.cs
- TypeSystem.cs
- Nullable.cs
- StateChangeEvent.cs
- Attributes.cs
- DesignSurfaceCollection.cs
- TextBoxBaseDesigner.cs
- ClientTarget.cs
- ThrowHelper.cs
- LifetimeServices.cs
- DrawingDrawingContext.cs
- TypeNameConverter.cs