x:FieldModifier – direktiva

Upraví chování kompilace XAML tak, aby pole pojmenovaných odkazů na objekty byla definována s TypeAttributes.Public přístupem místo výchozího TypeAttributes.NotPublic chování.

Použití atributu XAML

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

Hodnoty XAML

Hodnota Popis
Public Přesný řetězec, který zadáte a který zadáte TypeAttributes.PublicTypeAttributes.NotPublic , se liší v závislosti na použitém programovacím jazyce založeném na kódu. Viz poznámky.

Závislosti

Pokud se produkční prostředí XAML používá x:FieldModifier kdekoli, kořenový prvek tohoto produkčního prostředí XAML musí deklarovat direktivu x:Class.

Poznámky

x:FieldModifier není relevantní pro deklarování obecné úrovně přístupu třídy nebo jejích členů. Je relevantní pouze pro chování zpracování XAML v případě, že se zpracuje konkrétní objekt XAML, který je součástí produkčního prostředí XAML, a stane se objektem, který je potenciálně přístupný v objektovém grafu aplikace. Ve výchozím nastavení je odkaz na pole pro takový objekt soukromý, což brání uživatelům ovládacích prvků v přímé úpravě grafu objektu. Místo toho se očekává, že uživatelé ovládacího prvku upraví graf objektů pomocí standardních vzorů, které jsou povoleny programovacími modely, jako je získání kořene rozložení, kolekce podřízených elementů, vyhrazené veřejné vlastnosti atd.

Hodnota atributu se liší podle programovacího x:FieldModifier jazyka a jeho účel se může lišit v konkrétních architekturách. Řetězec, který se má použít, závisí na tom, jak každý jazyk implementuje své CodeDomProvider a převaděče typů, které vrací, definují významy pro TypeAttributes.Public a TypeAttributes.NotPublic, a zda je tento jazyk rozlišovat malá a velká písmena.

  • V jazyce C# je řetězec, který se má předat k určení TypeAttributes.Public , je public.

  • Pro Rozhraní .NET jazyka Microsoft Visual Basic je řetězec, který se má předat k určení TypeAttributes.Public , je Public.

  • Pro C++/CLI aktuálně neexistují žádné cíle pro XAML; proto řetězec, který se má předat, není definován.

Můžete také zadat TypeAttributes.NotPublic (internal v jazyce C#, Friend v jazyce Visual Basic), ale určení TypeAttributes.NotPublic je neobvyklé, protože NotPublic chování je již výchozí.

TypeAttributes.NotPublic je výchozí chování, protože je zřídkakdy kód mimo sestavení, které zkompiloval XAML potřebuje přístup k elementu vytvořenému XAML. Architektura zabezpečení WPF společně s chováním kompilace XAML nebude deklarovat pole, která ukládají instance elementů jako veřejné, pokud výslovně nenastavíte x:FieldModifier povolení veřejného přístupu.

x:FieldModifierje relevantní pouze pro prvky se direktivou x:Name, protože tento název se používá k odkazování na pole po jeho zveřejnění.

Ve výchozím nastavení je částečná třída kořenového prvku veřejná; můžete jej však nepublikovat pomocí direktivy x:ClassModifier. Direktiva x:ClassModifier má vliv také na úroveň přístupu instance kořenové třídy elementu. Můžete vložit jak x:Namex:FieldModifier do kořenového elementu, ale tím se vytvoří pouze kopie veřejného pole kořenového elementu, přičemž úroveň přístupu třídy true root element stále řídí x:ClassModifier – direktiva.

Viz také