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(Object), que cria um PropertyMetadata
que relata um valor padrão para dependencyProperty. Em PropertyMetadata
seguida, 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);
}
}
Comentários
Definir uma PropertyMetadata
instância 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 PropertyMetadata
valor 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
PropertyMetadata
valor se um ou ambos os comportamentos forem desejados. Caso contrário, um valor denull
pode ser passado para opropertyMetadata
parâmetro quando uma propriedade de dependência é registrada com o sistema de propriedades de dependência. Para obter mais informações, consulte DependencyProperty.Register.
Se você 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 isso 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 PropertyMetadata
instância 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 PropertyMetadata
instância: 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. |