語言

IXamlNameResolver 介面

定義

描述一種服務,可以回傳由 XAML 名稱指定的物件,或回傳一個延遲名稱解析的標記。 該服務也能回傳一組可枚舉的所有 XAML 命名物件。

public interface class IXamlNameResolver
public interface IXamlNameResolver
type IXamlNameResolver = interface
Public Interface IXamlNameResolver

備註

此介面並非用於外部實作典型 XAML 場景,因為它是一個服務。 此服務允許標記擴充與型別轉換器,在物件仍處於 XAML 節點表示狀態時,將 XAML 名稱解析為同一 XAML 來源的其他物件。 此服務可用於解析任何依賴 XAML 名稱以非線性存取周邊 XAML 產出的機制的前向參考。 欲了解更多資訊,請參閱 XAML 的類型轉換器與標記擴充。

型別轉換器和標記擴充功能可以在 XAML 物件寫入器所提供的服務上下文中查詢 作為 IXamlNameResolver 服務,當 XAML 物件寫入器呼叫值轉換行為時。 欲了解更多資訊,請參閱 XAML 的型別轉換器與標記擴展 ,以及 型別轉換器和標記擴充可用的服務情境。

此服務會提供一個可以延後名稱解析的 API。 服務實作的隱喻是,對於無法在部分名稱-物件圖上第一次處理解決的名稱,應該被儲存並用來建立修正標記。 預設情況下,所有此類名稱會在第二次處理時提交給再次嘗試解析。 在第二次處理時,整體的名稱-物件圖完成,所有修正標記都能解決。

Note

即使某些實作允許,XAML 中的前向參考仍不可避免地會帶來效能影響。 作為生產品質 XAML 的最佳做法,盡量避免前向參考。

屬性

名稱 Description
IsFixupTokenAvailable

獲得一個值,決定是否可用呼叫 GetFixupToken(IEnumerable<String>, Boolean) ,將名稱解析為前向解析的標記。

方法

名稱 Description
GetAllNamesAndValuesInScope()

回傳 XAML 命名範圍中所有命名物件的可枚舉集合。

GetFixupToken(IEnumerable<String>, Boolean)

回傳一個物件,能修正產生前向參考的特定標記模式。

GetFixupToken(IEnumerable<String>)

回傳一個物件,能修正產生前向參考的特定標記模式。

Resolve(String, Boolean)

從名稱參考解析物件,並提供追蹤值以報告物件是否已完全初始化,方便物件圖。

Resolve(String)

從名稱參考解析物件。

事件

名稱 Description
OnNameScopeInitializationComplete

當 XAML 處理器已將所有相關名稱註冊到後方 XAML 命名範圍時,會發生此現象。

適用於

另請參閱