PropertyMetadata.Merge(PropertyMetadata, DependencyProperty) Метод

Определение

Совмещает эти метаданные с основными.

protected:
 virtual void Merge(System::Windows::PropertyMetadata ^ baseMetadata, System::Windows::DependencyProperty ^ dp);
protected virtual void Merge (System.Windows.PropertyMetadata baseMetadata, System.Windows.DependencyProperty dp);
abstract member Merge : System.Windows.PropertyMetadata * System.Windows.DependencyProperty -> unit
override this.Merge : System.Windows.PropertyMetadata * System.Windows.DependencyProperty -> unit
Protected Overridable Sub Merge (baseMetadata As PropertyMetadata, dp As DependencyProperty)

Параметры

baseMetadata
PropertyMetadata

Основные метаданные, с которыми следует совместить значения экземпляра.

dp
DependencyProperty

Свойство зависимостей, к которому применяются данные метаданные.

Примеры

В следующем примере реализуется слияние для пользовательского типа метаданных, который добавляет дополнительное свойство в метаданные свойства.

public Boolean SupportsMyFeature
{
    get { return _supportsMyFeature; }
    set { if (this.IsSealed != true) _supportsMyFeature = value; } //else may want to raise exception 
}
protected override void Merge(PropertyMetadata baseMetadata, DependencyProperty dp)
{
    base.Merge(baseMetadata, dp);
    MyCustomPropertyMetadata mcpm = baseMetadata as MyCustomPropertyMetadata;
    if (mcpm != null)
    {
        if (this.SupportsMyFeature == false)
        {//if not set, revert to base
            this.SupportsMyFeature = mcpm.SupportsMyFeature;
        }
    }
}

Комментарии

Этот метод используется внутренне при переопределении метаданных (OverrideMetadata метод).

Примечания для тех, кто наследует этот метод

Реализации классов, производные от PropertyMetadata этого метода, должны переопределять этот метод, чтобы учитывать все свойства метаданных, добавленные в их реализации. Например, реализация могла добавить новое значение пометки перечисления, а Merge(PropertyMetadata, DependencyProperty) затем реализация должна правильно объединить эти флаги.

Всегда вызывайте базовую реализацию до кода реализации, так как базовая реализация отвечает за объединение всех свойств, уже определенных для PropertyMetadata типа.

Точное поведение слияния связано с вами. Вы можете объединить значения, вернуться к базовому значению, если производные метаданные остались по умолчанию или многие другие поведения на основе типов свойств, добавленных в определенный класс метаданных, и их значения.

Применяется к

См. также раздел