PropertyMetadata Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce gli aspetti del comportamento di una proprietà di dipendenza, incluse le condizioni con cui è stato registrato. Per altre info sull'uso di PropertyMetadata per le proprietà di dipendenza, vedi Proprietà di dipendenza personalizzate.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertyMetadata
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class PropertyMetadata
Public Class PropertyMetadata
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10 (è stato introdotto in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
|
Esempio
In questo esempio viene chiamato il costruttore PropertyMetadata(Object), che crea un propertyMetadata che segnala un valore predefinito per dependencyProperty. La proprietà PropertyMetadata viene quindi utilizzata per una registrazione di proprietà associata quando viene chiamato RegisterAttached .
public abstract class AquariumServices : DependencyObject
{
public enum Buoyancy {Floats,Sinks,Drifts}
public static readonly DependencyProperty BuoyancyProperty = DependencyProperty.RegisterAttached(
"Buoyancy",
typeof(Buoyancy),
typeof(AquariumServices),
new PropertyMetadata(Buoyancy.Floats)
);
public static void SetBuoyancy(DependencyObject element, Buoyancy value)
{
element.SetValue(BuoyancyProperty, value);
}
public static Buoyancy GetBuoyancy(DependencyObject element)
{
return (Buoyancy)element.GetValue(BuoyancyProperty);
}
}
Public Class AquariumServices
Inherits DependencyObject
Public Enum Buoyancy
Floats
Sinks
Drifts
End Enum
Public Shared ReadOnly BuoyancyProperty As DependencyProperty = _
DependencyProperty.RegisterAttached(
"Buoyancy", _
GetType(Buoyancy), _
GetType(AquariumServices), _
New PropertyMetadata(Buoyancy.Floats))
Public Sub SetBuoyancy(element As DependencyObject, value As Buoyancy)
element.SetValue(BuoyancyProperty, value)
End Sub
Public Function GetBuoyancy(element As DependencyObject) As Buoyancy
GetBuoyancy = CType(element.GetValue(BuoyancyProperty), Buoyancy)
End Function
End Class
Commenti
La definizione di un'istanza PropertyMetadata fa parte dello scenario per la definizione di una proprietà di dipendenza personalizzata. Per informazioni ed esempi, vedi Proprietà di dipendenza personalizzate.
Un valore PropertyMetadata rappresenta due aspetti del comportamento della proprietà di dipendenza:
- Fornisce un valore predefinito, utilizzato come valore della proprietà, a meno che il tipo di proprietario non inizializzi in modo specifico il valore o che il valore venga impostato dal codice utente o da altri meccanismi.
- Fa riferimento a un callback richiamato se il sistema di proprietà di dipendenza rileva che la proprietà di dipendenza è stata modificata. In genere, una proprietà di dipendenza richiede un valore PropertyMetadata solo se si desidera uno o entrambi questi comportamenti. In caso contrario, è possibile passare un valore Null per il parametro propertyMetadata quando una proprietà di dipendenza viene registrata con il sistema di proprietà di dipendenza. Per altre info, vedi DependencyProperty.Register.
Se PropertyMetadata include un riferimento di callback modificato dalla proprietà, tale metodo deve essere un metodo statico della classe che espone l'identificatore DependencyProperty in cui viene applicato tale propertyMetadata. Come scrivere questo metodo è descritto in Proprietà di dipendenza personalizzate e anche l'argomento di riferimento per il delegato PropertyChangedCallback .
Nota
Dopo la creazione, un'istanza PropertyMetadata non ha una proprietà che può essere usata per trovare il callback o anche per determinare il nome del metodo del callback. Tali informazioni sono considerate un dettaglio di implementazione di una proprietà di dipendenza e solo il sistema di proprietà di dipendenza stesso deve essere in grado di richiamare tale metodo.
Creazione di un'istanza di un valore PropertyMetadata
Esistono due metodi che possono creare un'istanza di PropertyMetadata: un costruttore e un metodo static PropertyMetadata.Create . Ognuno di questi metodi ha più firme. È più comune usare i costruttori. Tuttavia, è necessario usare PropertyMetadata.Create se si vuole che il meccanismo di valore predefinito per la proprietà di dipendenza sia thread-safe. Per altre info, vedi la sezione "Metadati delle proprietà per una proprietà di dipendenza personalizzata" dell'argomento Proprietà di dipendenza personalizzate .
Costruttori
PropertyMetadata(Object) |
Inizializza una nuova istanza della classe PropertyMetadata utilizzando un valore predefinito della proprietà. |
PropertyMetadata(Object, PropertyChangedCallback) |
Inizializza una nuova istanza della classe PropertyMetadata utilizzando un valore predefinito della proprietà e un riferimento di callback. |
Proprietà
CreateDefaultValueCallback |
Ottiene un riferimento al metodo di callback che fornisce un valore di proprietà predefinito. |
DefaultValue |
Ottiene il valore predefinito per la proprietà di dipendenza. |
Metodi
Create(CreateDefaultValueCallback) |
Crea un valore PropertyMetadata , specificando un callback che stabilisce un valore predefinito per una proprietà di dipendenza. |
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
Crea un valore PropertyMetadata , specificando un callback che stabilisce un valore predefinito per una proprietà di dipendenza e un callback modificato dalla proprietà. |
Create(Object) |
Crea un valore PropertyMetadata , specificando un valore predefinito fisso per una proprietà di dipendenza. |
Create(Object, PropertyChangedCallback) |
Crea un valore PropertyMetadata , specificando un valore predefinito fisso per una proprietà di dipendenza e un callback modificato dalla proprietà. |