IViewAutomationPeer Arabirim
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
public interface class IViewAutomationPeer
public interface IViewAutomationPeer
type IViewAutomationPeer = interface
Public Interface IViewAutomationPeer
- Türetilmiş
Örnekler
Aşağıdaki kod, denetimin en üstünde ListView görünen bir düğmeyi işlemek için ayrı bir sınıfta uygulayan IViewAutomationPeer özel bir görünümü gösterir.
public class OneButtonHeaderView : ViewBase
{
protected override IViewAutomationPeer GetAutomationPeer(ListView parent)
{
return new OneButtonHeaderViewAutomationPeer( this, parent );
}
Public Class OneButtonHeaderView
Inherits ViewBase
Protected Overrides Function GetAutomationPeer(ByVal parent As ListView) As IViewAutomationPeer
Return New OneButtonHeaderViewAutomationPeer(Me, parent)
End Function
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
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() { }
}
Public Class OneButtonHeaderViewAutomationPeer
Implements IViewAutomationPeer
Private m_lv As ListView
Public Sub New(ByVal control As OneButtonHeaderView, ByVal parent As ListView)
m_lv = parent
End Sub
Private Function CreateItemAutomationPeer(ByVal item As Object) As ItemAutomationPeer Implements IViewAutomationPeer.CreateItemAutomationPeer
Dim lvAP As ListViewAutomationPeer = TryCast(UIElementAutomationPeer.FromElement(m_lv), ListViewAutomationPeer)
Return New ListBoxItemAutomationPeer(item, lvAP)
End Function
Private Function GetAutomationControlType() As AutomationControlType Implements IViewAutomationPeer.GetAutomationControlType
Return AutomationControlType.List
End Function
Private Function GetChildren(ByVal children As List(Of AutomationPeer)) As List(Of AutomationPeer) Implements IViewAutomationPeer.GetChildren
' 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.
Dim b As Button = CType(m_lv.Template.FindName("BannerButton", m_lv), Button)
Dim peer As AutomationPeer = UIElementAutomationPeer.CreatePeerForElement(b)
'If children is null, we still need to create an empty list to insert the button
If children Is Nothing Then
children = New List(Of AutomationPeer)()
End If
children.Insert(0, peer)
Return children
End Function
Private Function GetPattern(ByVal patternInterface As PatternInterface) As Object Implements IViewAutomationPeer.GetPattern
' we can invoke the banner button
If patternInterface = PatternInterface.Invoke Then
Dim b As Button = CType(m_lv.Template.FindName("BannerButton", m_lv), Button)
Dim peer As AutomationPeer = UIElementAutomationPeer.FromElement(b)
If peer IsNot Nothing Then
Return peer
End If
End If
' if this view does not have special handling for the pattern interface, return null
' the ListViewAutomationPeer.GetPattern default handling will be used.
Return Nothing
End Function
Private Sub ItemsChanged(ByVal e As System.Collections.Specialized.NotifyCollectionChangedEventArgs) Implements IViewAutomationPeer.ItemsChanged
End Sub
Private Sub ViewDetached() Implements IViewAutomationPeer.ViewDetached
End Sub
End Class
Yöntemler
CreateItemAutomationPeer(Object) |
ItemAutomationPeer sınıfının yeni bir örneğini oluşturur. |
GetAutomationControlType() |
Bu IViewAutomationPeerile ilişkili öğenin denetim türünü alır. |
GetChildren(List<AutomationPeer>) |
Belirtilen UI Otomasyonu eşinin anlık alt öğelerinin koleksiyonunu alır. |
GetPattern(PatternInterface) |
Belirtilen |
ItemsChanged(NotifyCollectionChangedEventArgs) |
Öğe koleksiyonu değiştiğinde tarafından ListView çağrılır. |
ViewDetached() |
Özel görünüm artık uygulamasına uygulanmadığında çağrılır ListView. |