Sdílet prostřednictvím


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 TypeAttributes.NotPublic výchozí chování.

Použití atributu XAML

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

Hodnoty XAML

Hodnota Popis
veřejné Přesný řetězec, který předáte k určení TypeAttributes.Public a TypeAttributes.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 produkční prostředí XAML používá x:FieldModifier kdekoli, kořenový prvek tohoto produkčního prostředí XAML musí deklarovat x:Class Direktiva.

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 x:FieldModifier se liší podle programovacího 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.NotPublica zda je tento jazyk citlivý na malá a velká písmena.

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

  • Pro Rozhraní .NET jazyka Microsoft Visual Basic je řetězec, který se má předat k určení TypeAttributes.Public, 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 zadání TypeAttributes.NotPublic je neobvyklé, protože NotPublic, protože chování je již výchozí.

TypeAttributes.NotPublic je výchozím chováním, 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 povolit veřejný přístup.

x:FieldModifier je relevantní pouze pro prvky s 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í x:ClassModifier direktivy. x:ClassModifier – direktiva má vliv také na úroveň přístupu instance kořenové třídy elementu. Do kořenového elementu můžete umístit x:Name i x:FieldModifier, ale tím se vytvoří pouze kopie kořenového prvku veřejného pole s úrovní přístupu třídy true root element, která je stále řízena x:ClassModifier direktivy.

Viz také