共用方式為


ItemPolicy.GetSurrogateItems 方法

會傳回這個項目的選擇性代理項目。

命名空間:  Microsoft.Windows.Design.Policies
組件:  Microsoft.Windows.Design.Interaction (在 Microsoft.Windows.Design.Interaction.dll 中)

語法

'宣告
Public Overridable Function GetSurrogateItems ( _
    item As ModelItem _
) As IEnumerable(Of ModelItem)
public virtual IEnumerable<ModelItem> GetSurrogateItems(
    ModelItem item
)
public:
virtual IEnumerable<ModelItem^>^ GetSurrogateItems(
    ModelItem^ item
)
abstract GetSurrogateItems : 
        item:ModelItem -> IEnumerable<ModelItem> 
override GetSurrogateItems : 
        item:ModelItem -> IEnumerable<ModelItem> 
public function GetSurrogateItems(
    item : ModelItem
) : IEnumerable<ModelItem>

參數

傳回值

型別:System.Collections.Generic.IEnumerable<ModelItem>
要檢查之代理項目的列舉。預設會傳回空的列舉。

備註

代理項目可為指定的項目提供額外功能。 代理不屬於公開至原則之消費者的項目之一部分。 如果您需要父物件來為子物件提供功能,請傳回代理項目。 若要傳回代理項目的集合,請覆寫 IsSurrogate 屬性,讓它傳回 true。

注意事項注意事項

請勿從您的 GetSurrogateItems 實作傳回 nullNull 參照 (即 Visual Basic 中的 Nothing)。

範例

下列程式碼範例示範,如何透過實作 IsSurrogate 屬性和 GetSurrogateItems 方法,以建立自訂代理原則 (Surrogate Policy)。 如需完整的程式碼清單,請參閱 HOW TO:建立 Surrogate 原則

' The DockPanelPolicy class implements a surrogate policy that
' provides container semantics for a selected item. By using 
' this policy, the DemoDockPanel container control offers 
' additional tasks and adorners on its children. 
Class DockPanelPolicy
    Inherits PrimarySelectionPolicy

    Public Overrides ReadOnly Property IsSurrogate() As Boolean 
        Get
            Return True
        End Get
    End Property

    Public Overrides Function GetSurrogateItems( _
        ByVal item As Microsoft.Windows.Design.Model.ModelItem) _
        As System.Collections.Generic.IEnumerable( _
        Of Microsoft.Windows.Design.Model.ModelItem)

        Dim parent As ModelItem = item.Parent

        Dim e As New System.Collections.Generic.List(Of ModelItem)

        If (parent IsNot Nothing) Then

            e.Add(parent)

        End If

        Return e

    End Function

End Class
// The DockPanelPolicy class implements a surrogate policy that
// provides container semantics for a selected item. By using 
// this policy, the DemoDockPanel container control offers 
// additional tasks and adorners on its children. 
class DockPanelPolicy : PrimarySelectionPolicy 
{
    public override bool IsSurrogate 
    {
        get 
        { 
            return true;
        }
    }

    public override IEnumerable<ModelItem> GetSurrogateItems(ModelItem item) 
    {
        ModelItem parent = item.Parent;

        if (parent != null)
        {
            yield return parent;
        }
    }
}

.NET Framework 安全性

請參閱

參考

ItemPolicy 類別

Microsoft.Windows.Design.Policies 命名空間

PrimarySelectionPolicy

SelectionPolicy

FeatureProvider

FeatureConnectorAttribute

其他資源

功能提供者和功能連接器

了解 WPF 設計工具擴充性