FrameworkPropertyMetadata.BindsTwoWayByDefault Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает значение, указывающее, создает ли свойство двухсторонние привязки по умолчанию.
public:
property bool BindsTwoWayByDefault { bool get(); void set(bool value); };
public bool BindsTwoWayByDefault { get; set; }
member this.BindsTwoWayByDefault : bool with get, set
Public Property BindsTwoWayByDefault As Boolean
Значение свойства
Значение true
, если свойство зависимостей, в котором существуют эти метаданные, создает двухсторонние привязки по умолчанию; в противном случае — значение false
. Значение по умолчанию — false
.
Исключения
Метаданные уже применены к операции свойства зависимостей. Поэтому метаданные запечатаны, а их свойства нельзя задать.
Примеры
Следующий пример получает метаданные по умолчанию из различных полей свойств зависимостей, запрашивает значение различных FrameworkPropertyMetadata свойств и использует сведения для заполнения таблицы для реализации "браузера метаданных".
pm = dp.GetMetadata(dp.OwnerType);
pm = dp.GetMetadata(dp.OwnerType)
FrameworkPropertyMetadata fpm = pm as FrameworkPropertyMetadata;
if (fpm!=null) {
AffectsArrange.Text = (fpm.AffectsArrange) ? "Yes" : "No";
AffectsMeasure.Text = (fpm.AffectsMeasure) ? "Yes" : "No";
AffectsRender.Text = (fpm.AffectsRender) ? "Yes" : "No";
Inherits.Text = (fpm.Inherits) ? "Yes" : "No";
IsDataBindingAllowed.Text = (fpm.IsDataBindingAllowed) ? "Yes" : "No";
BindsTwoWayByDefault.Text = (fpm.BindsTwoWayByDefault) ? "Yes" : "No";
}
Dim fpm As FrameworkPropertyMetadata = TryCast(pm, FrameworkPropertyMetadata)
If fpm IsNot Nothing Then
AffectsArrange.Text = If((fpm.AffectsArrange), "Yes", "No")
AffectsMeasure.Text = If((fpm.AffectsMeasure), "Yes", "No")
AffectsRender.Text = If((fpm.AffectsRender), "Yes", "No")
[Inherits].Text = If((fpm.Inherits), "Yes", "No")
IsDataBindingAllowed.Text = If((fpm.IsDataBindingAllowed), "Yes", "No")
BindsTwoWayByDefault.Text = If((fpm.BindsTwoWayByDefault), "Yes", "No")
Комментарии
В отсутствие этого свойства true
обновления привязки по умолчанию являются односторонними на основе поведения конструкторов или эквивалентного Binding синтаксиса XAML.
В существующих элементах обычно это свойство true
устанавливается в метаданных для свойств зависимостей, которые отображаются как состояние отчета, так и изменяются действием пользователя, например Selector.IsSelected.
Это свойство сообщает только характеристики обновления привязки по умолчанию свойства зависимости в целом. Любая привязка, заданная этому свойству в экземпляре, может локально задать Mode свойство привязки и изменить это значение по умолчанию.
Свойства любого производного PropertyMetadata класса обычно определяются в объектной модели как чтение и запись. Это позволяет настроить их после инициализации экземпляра. Однако после использования метаданных в рамках вызова RegisterAddOwnerили OverrideMetadataсистемы свойств система свойств запечатывает этот экземпляр метаданных и свойства, которые передают особенности метаданных, теперь считаются неизменяемыми. При попытке задать это свойство после IsSealed того, как он находится true
в этом экземпляре метаданных, возникнет исключение.
Использование текста XAML
Члены этого класса обычно не используются в XAML.