共用方式為


x:FieldModifier 屬性

更新:2007 年 11 月

修改 XAML 編譯行為,這樣具名物件參考的欄位會使用 NonPublic 存取定義,而非 Public 預設行為。

XAML 屬性使用方式

<object x:FieldModifier="Public".../>

XAML 值

Public

依據使用的程式碼後置程式設計語言,用於指定 Public 與 NonPublic 的精確傳遞字串也會改變。請參閱「備註」。

相依性

在相同項目上也必須提供 x:Name

備註

x:FieldModifier 屬性的值會依程式設計語言而異。每個語言實作其 CodeDomProvider 的方式、它所傳回用來定義 TypeAttributes.PublicTypeAttributes.NonPublic 意義的型別轉換子 (Type Converter),以及該語言是否區分大小寫,都會影響到所要使用字串的決定。

  • 對於 C#,用於指定 Public 的傳遞字串是 public。

  • 對於 Microsoft Visual Basic .NET,用於指定 Public 的傳遞字串是 Public。

  • 對於 C++/CLI,C++/CLI 目標目前不支援編譯 XAML。

您也可以指定 NonPublic (C# 中的 internal,Microsoft Visual Basic .NET 中的 Friend),但這並不常用,因為 NonPublic 已經是預設的行為。

之所以會將 NonPublic 設為預設,是因為編譯 XAML 的組件外的程式碼,有需要存取 XAML 所建立項目的機會不常見。WPF 安全性架構會故意選擇不要讓存放項目執行個體的欄位成為公用,除非您特定設定 x:FieldModifier。

對於具有 x:Name 屬性的項目而言,x:FieldModifier 是唯一有意義的,因為只要欄位是公用的,就會使用該名稱參考欄位。

根項目的部分類別預設是公用的,但可以使用 x:ClassModifier 屬性設為非公用。x:ClassModifier 屬性也會影響根項目類別執行個體的存取層級。您可以同時在根項目上放置 x:Name 和 x:FieldModifier,但這只會建立根項目的公用欄位複本,而真正的根項目類別存取層級仍然是由 x:ClassModifier 屬性所控制。

請參閱

概念

XAML 和自訂類別

程式碼後置和 XAML

建置 WPF 應用程式 (WPF)

參考

x:Name 屬性

x:ClassModifier 屬性