IViewAutomationPeer Interface
.NET Framework 4.5
Namespace: System.Windows.Automation.Peers
Assembly: PresentationFramework (in PresentationFramework.dll)
The IViewAutomationPeer type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | CreateItemAutomationPeer | Creates a new instance of the ItemAutomationPeer class. |
![]() | GetAutomationControlType | Gets the control type for the element that is associated with this IViewAutomationPeer. |
![]() | GetChildren | Gets the collection of immediate child elements of the specified UI Automation peer. |
![]() | GetPattern | Gets the control pattern that is associated with the specified patternInterface. |
![]() | ItemsChanged | Called by ListView when the collection of items changes. |
![]() | ViewDetached | Called when the custom view is no longer applied to the ListView. |
The following code shows a custom view implementing IViewAutomationPeer in a separate class to handle a button that appears at the top of the ListView control.
public class OneButtonHeaderView : ViewBase { protected override IViewAutomationPeer GetAutomationPeer(ListView parent) { return new OneButtonHeaderViewAutomationPeer( this, parent ); } ... public class OneButtonHeaderViewAutomationPeer : IViewAutomationPeer { ListView m_lv; public OneButtonHeaderViewAutomationPeer(OneButtonHeaderView control, ListView parent) { m_lv = parent; } ItemAutomationPeer IViewAutomationPeer.CreateItemAutomationPeer(Object item) { ListViewAutomationPeer lvAP = UIElementAutomationPeer.FromElement(m_lv) as ListViewAutomationPeer; return new ListBoxItemAutomationPeer(item, lvAP); } AutomationControlType IViewAutomationPeer.GetAutomationControlType() { return AutomationControlType.List; } List<AutomationPeer> IViewAutomationPeer.GetChildren(List<AutomationPeer> children) { // the children parameter is a list of automation peers for all the known items // our view must add its banner button peer to this list. Button b = (Button)m_lv.Template.FindName("BannerButton", m_lv); AutomationPeer peer = UIElementAutomationPeer.CreatePeerForElement(b); //If children is null, we still need to create an empty list to insert the button if (children == null) { children = new List<AutomationPeer>(); } children.Insert(0, peer); return children; } Object IViewAutomationPeer.GetPattern(PatternInterface patternInterface) { // we can invoke the banner button if (patternInterface == PatternInterface.Invoke) { Button b = (Button)m_lv.Template.FindName("BannerButton", m_lv); AutomationPeer peer = UIElementAutomationPeer.FromElement(b); if (peer != null) return peer; } // if this view does not have special handling for the pattern interface, return null // the ListViewAutomationPeer.GetPattern default handling will be used. return null; } void IViewAutomationPeer.ItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { } void IViewAutomationPeer.ViewDetached() { } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
