Binding Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет привязку, соединяющую свойства целевых объектов привязки и источников данных.
/// [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 Binding : BindingBase
[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 Binding : BindingBase
Public Class Binding
Inherits BindingBase
<Binding .../>
- or -
<dependencyobject dependencyproperty="{Binding bindingArgs}" />
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Примеры
В следующем примере кода показано, как создать привязку в XAML. Полный список кода см. в примере привязки данных XAML.
<StackPanel Margin="5">
<TextBlock Text="Name:" Style="{StaticResource DescriptionTextStyle}"
Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<TextBox Text="{Binding Path=Name, Mode=TwoWay}"
Width="350" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<TextBlock Text="Organization:" Style="{StaticResource DescriptionTextStyle}"
Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<!-- You can omit the 'Path=' portion of the binding expression. -->
<TextBox Text="{Binding Organization, Mode=TwoWay}" Width="350"
Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</StackPanel>
В следующем примере кода показано, как создать привязку в коде.
// Create the source string.
string s = "Hello";
// Create the binding description.
Binding b = new Binding();
b.Mode = BindingMode.OneTime;
b.Source = s;
// Attach the binding to the target.
TextBlock MyText = new TextBlock();
MyText.SetBinding(TextBlock.TextProperty, b);
// Create the source string.
String^ s = ref new String(L"Hello");
// Create the binding description.
Binding^ b = ref new Binding();
b->Mode = BindingMode::OneTime;
b->Source = s;
// Attach the binding to the target.
TextBlock^ MyText = ref new TextBlock();
MyText->SetBinding(MyText->TextProperty, b);
'Create the source string
Dim s As String = "Hello"
'Create the binding description
Dim b As New Binding()
b.Mode = BindingMode.OneTime
b.Source = s
'Attach the binding to the target
Dim MyText As New TextBlock()
MyText.SetBinding(TextBlock.TextProperty, b)
Комментарии
Расширение разметки {Binding} позволяет указать значение Привязки в виде одной строки атрибута в XAML, включая задание свойств Привязки, таких как Path и Source. Дополнительные сведения о концепциях привязки данных см. в разделе Привязка данных.
Класс Binding можно считать раскрытием кода программной части расширения разметки {Binding}. Если привязка уже применена к целевому объекту (что происходит при загрузке XAML), нельзя задать свойства чтения и записи объекта Binding, чтобы изменить поведение привязки во время выполнения. Любая привязка, определяемая XAML, должна считаться неизменяемой. Но вы можете создать новый объект Binding, задать его свойства и установить новую привязку для определенного целевого элемента пользовательского интерфейса с помощью FrameworkElement.SetBinding. Дополнительные сведения см. в разделе Создание привязок в коде.
Объект Binding подключает свойство зависимостей FrameworkElement непосредственно к объекту данных, чтобы обновления объекта данных автоматически распространялись на свойство, использующее привязку данных. Класс Binding определяет свойства привязки. Каждая привязка должна иметь целевой элемент, целевое свойство и источник данных, хотя некоторые значения предоставляются по умолчанию, если они не указаны.
Чтобы выполнить привязку к свойству или дочернему свойству объекта данных, задайте свойство Path объекта Binding. Дополнительные сведения о том, как задать Path в коде или в XAML, см. в разделе Синтаксис пути к свойству или расширение разметки {Binding}.
Экземпляр класса Binding можно применить к нескольким целевым объектам. Однако изменить значения свойств объекта Binding после его присоединения к целевому элементу нельзя.
Примечание
Вызов метода FrameworkElement.SetBinding и передача нового объекта Binding не обязательно приведет к удалению существующей привязки. Вместо этого следует использовать метод DependencyObject.ClearValue .
Дополнительные сведения об использовании атрибута XAML для свойств, которые могут принимать привязку или которым в противном случае можно задать значение, привязанное к данным, см. в разделе Расширение разметки {Binding}.
Свойство, являющееся целью привязки данных, должно быть свойством зависимостей. Подробнее см. в разделе Общие сведения о свойствах зависимостей.
Конструкторы
Binding() |
Инициализирует новый экземпляр класса Binding . |
Свойства
Converter |
Возвращает или задает объект преобразователя, вызываемый модулем привязки для изменения данных по мере их прохождения между источником и целевым объектом или наоборот. |
ConverterLanguage |
Возвращает или задает значение, которое присваивает имя языку, передаваемому любому преобразователю, заданному свойством Converter . |
ConverterParameter |
Возвращает или задает параметр, который можно использовать в логике преобразователя . |
Dispatcher |
Возвращает объект CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет собой средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу. (Унаследовано от DependencyObject) |
ElementName |
Возвращает или задает имя элемента, используемого в качестве источника привязки для привязки. |
FallbackValue |
Получает или задает значение, которое следует использовать, когда привязка не может вернуть значение. |
Mode |
Возвращает или задает значение, указывающее направление потока данных в привязке. |
Path |
Возвращает или задает путь к свойству источника привязки. |
RelativeSource |
Получает или задает источник привязки, указывая его расположение относительно положения целевого объекта привязки. Это чаще всего используется в привязках в шаблонах элементов управления XAML. |
Source |
Возвращает или задает источник данных для привязки. |
TargetNullValue |
Возвращает или задает значение, используемое в целевом объекте, если значение источника равно NULL. |
UpdateSourceTrigger |
Возвращает или задает значение, определяющее время обновления источника привязки для двусторонних привязок. |
Методы
ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
GetValue(DependencyProperty) |
Возвращает текущее действующее значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомления для прослушивания изменений определенного DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей для Объекта DependencyObject. (Унаследовано от DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова Метода RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |