Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ExeContext.cs
- TransformConverter.cs
- XomlCompilerError.cs
- URLIdentityPermission.cs
- WebBrowserNavigatingEventHandler.cs
- XmlTextReader.cs
- WmlPhoneCallAdapter.cs
- EntityContainerRelationshipSetEnd.cs
- TypeLoadException.cs
- MessageOperationFormatter.cs
- SchemaImporterExtension.cs
- ControlPropertyNameConverter.cs
- ItemCheckedEvent.cs
- SettingsAttributes.cs
- Version.cs
- NativeRecognizer.cs
- FixedSOMTextRun.cs
- CustomCategoryAttribute.cs
- ConnectionConsumerAttribute.cs
- PartBasedPackageProperties.cs
- ASCIIEncoding.cs
- WebPartDescriptionCollection.cs
- FontWeightConverter.cs
- XmlNamespaceMapping.cs
- SettingsProperty.cs
- ProxyWebPartManager.cs
- dataobject.cs
- SystemNetworkInterface.cs
- iisPickupDirectory.cs
- PerformanceCounterManager.cs
- CodeGen.cs
- SafeSecurityHelper.cs
- DesignerAutoFormat.cs
- PieceNameHelper.cs
- InfoCardSymmetricCrypto.cs
- WindowsPen.cs
- TextBoxRenderer.cs
- DataViewSettingCollection.cs
- TypeElementCollection.cs
- Composition.cs
- NativeMethods.cs
- RegexWriter.cs
- RedistVersionInfo.cs
- Attributes.cs
- Color.cs
- BamlRecordHelper.cs
- DataGridViewCellStateChangedEventArgs.cs
- ColorDialog.cs
- LicenseException.cs
- BufferModeSettings.cs
- FixedSOMTable.cs
- ActivityTypeDesigner.xaml.cs
- _CacheStreams.cs
- FontConverter.cs
- CodeTypeDeclarationCollection.cs
- TypeBuilder.cs
- CommonGetThemePartSize.cs
- AppDomainManager.cs
- GeneralTransform2DTo3DTo2D.cs
- HttpConfigurationContext.cs
- CalendarTable.cs
- GPRECTF.cs
- PropertyPathWorker.cs
- ListBase.cs
- LOSFormatter.cs
- RangeContentEnumerator.cs
- WebControlsSection.cs
- BitmapFrame.cs
- MailAddressCollection.cs
- QilIterator.cs
- TypeCollectionDesigner.xaml.cs
- Matrix3DStack.cs
- ExpressionPrefixAttribute.cs
- EditorZoneBase.cs
- WindowsFont.cs
- Assembly.cs
- SqlBulkCopyColumnMapping.cs
- InstanceHandleReference.cs
- OleDbPermission.cs
- StrokeCollectionDefaultValueFactory.cs
- StreamMarshaler.cs
- ItemMap.cs
- PeerCollaborationPermission.cs
- ReflectionServiceProvider.cs
- TextMarkerSource.cs
- CodeAccessPermission.cs
- SupportsEventValidationAttribute.cs
- NativeRightsManagementAPIsStructures.cs
- PathData.cs
- Normalization.cs
- TransactionFilter.cs
- CatalogZoneBase.cs
- SpecularMaterial.cs
- DesignerActionUIStateChangeEventArgs.cs
- ObjectQueryExecutionPlan.cs
- CommonXSendMessage.cs
- RefType.cs
- ViewValidator.cs
- ScriptResourceInfo.cs
- SchemaImporterExtensionElementCollection.cs