PropertyMetadata Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define aspectos de comportamento de uma propriedade de dependência, incluindo condições com as quais ela foi registrada. Para obter mais informações sobre como PropertyMetadata é usado para propriedades de dependência, consulte Propriedades de dependência personalizadas.
/// [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
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Exemplos
Este exemplo chama o construtor PropertyMetadata(Object), que cria um PropertyMetadata que relata um valor padrão para uma DependencyProperty. O PropertyMetadata é então usado para um registro de propriedade anexado quando RegisterAttached é chamado.
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
Comentários
Definir uma instância propertyMetadata faz parte do cenário para definir uma propriedade de dependência personalizada. Para obter informações e exemplos, consulte Propriedades de dependência personalizadas.
Um valor PropertyMetadata representa dois aspectos do comportamento da propriedade de dependência:
- Fornece um valor padrão, que é usado como o valor da propriedade, a menos que o tipo de proprietário inicialize especificamente o valor ou o valor seja definido pelo código do usuário ou outros mecanismos.
- Faz referência a um retorno de chamada invocado se o sistema de propriedades de dependência detectar que a propriedade de dependência foi alterada. Normalmente, uma propriedade de dependência só precisa de um valor PropertyMetadata se um ou ambos os comportamentos forem desejados. Caso contrário, um valor nulo pode ser passado para o parâmetro propertyMetadata quando uma propriedade de dependência é registrada com o sistema de propriedades de dependência. Para obter mais informações, consulte DependencyProperty.Register.
Se o PropertyMetadata incluir uma referência de retorno de chamada alterada pela propriedade, esse método deverá ser um método estático da classe que expõe o identificador DependencyProperty em que PropertyMetadata é aplicado. Como escrever esse método é descrito em Propriedades de dependência personalizadas e também no tópico de referência do delegado PropertyChangedCallback .
Observação
Depois de criada, uma instância PropertyMetadata não tem uma propriedade que pode ser usada para localizar o retorno de chamada ou até mesmo para determinar o nome do método do retorno de chamada. Essas informações são consideradas um detalhe de implementação de uma propriedade de dependência e apenas o próprio sistema de propriedades de dependência precisa ser capaz de invocar esse método.
Instanciando um valor PropertyMetadata
Há dois métodos que podem instanciar uma instância propertyMetadata: um construtor e um método PropertyMetadata.Create estático. Cada um desses métodos tem várias assinaturas. É mais comum usar os construtores. No entanto, você deve usar PropertyMetadata.Create se quiser que o mecanismo de valor padrão para sua propriedade de dependência seja thread-safe. Para obter mais informações, consulte a seção "Metadados de propriedade para uma propriedade de dependência personalizada" do tópico Propriedades de dependência personalizadas .
Construtores
PropertyMetadata(Object) |
Inicializa uma nova instância da classe PropertyMetadata , usando um valor padrão de propriedade. |
PropertyMetadata(Object, PropertyChangedCallback) |
Inicializa uma nova instância da classe PropertyMetadata , usando um valor padrão de propriedade e uma referência de retorno de chamada. |
Propriedades
CreateDefaultValueCallback |
Obtém uma referência ao método de retorno de chamada que fornece um valor de propriedade padrão. |
DefaultValue |
Obtém o valor padrão para a propriedade de dependência. |
Métodos
Create(CreateDefaultValueCallback) |
Cria um valor PropertyMetadata , especificando um retorno de chamada que estabelece um valor padrão para uma propriedade de dependência. |
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
Cria um valor PropertyMetadata , especificando um retorno de chamada que estabelece um valor padrão para uma propriedade de dependência e um retorno de chamada alterado pela propriedade. |
Create(Object) |
Cria um valor PropertyMetadata , especificando um valor padrão fixo para uma propriedade de dependência. |
Create(Object, PropertyChangedCallback) |
Cria um valor PropertyMetadata , especificando um valor padrão fixo para uma propriedade de dependência e um retorno de chamada alterado pela propriedade. |