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(Microsoft.UI.Xaml.WinUIContract, 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(Microsoft.UI.Xaml.WinUIContract), 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
Exemplos
Este exemplo chama o construtor PropertyMetadata
é 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);
}
}
Comentários
Definir uma instância de 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 denull
pode ser passado para o parâmetropropertyMetadata
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 DependencyProperty identificador em que esse PropertyMetadata
é aplicado. Como escrever esse método é descrito em
Nota
Uma vez criada, uma instância de PropertyMetadata
não tem uma propriedade que possa 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 criar uma instância de 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" das propriedades de dependência personalizadas tópico.
Construtores
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. |
PropertyMetadata(Object) |
Inicializa uma nova instância da classe PropertyMetadata, usando um valor padrão de propriedade. |
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 da propriedade de dependência. |
Métodos
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(CreateDefaultValueCallback) |
Cria um valor PropertyMetadata, especificando um retorno de chamada que estabelece um valor padrão 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. |
Create(Object) |
Cria um valor PropertyMetadata, especificando um valor padrão fixo para uma propriedade de dependência. |