Що означає "{Шлях прив'язки =.}" У прив'язці WPF?


91

Що {Binding Path=.}означає прив'язка WPF?

Я бачу, що деякі люди цим користуються, але не знайшли пояснення.

Чи існують інші спеціальні символи в синтаксисі прив'язки (крім {Binding /})?

Відповіді:


59

Це скорочення для прив’язки до поточного джерела. Для отримання додаткової інформації дивіться тут .

З документації конкретно:

Необов’язково шлях (.) Можна використовувати для прив’язки до поточного джерела. Наприклад, Text="{Binding}"еквівалентно Text="{Binding Path=.}".


1
@Ray - мої думки точно. Якщо ви збираєтеся скорочувати, чому на цьому зупинятися?
micahtan

5
Я не можу сперечатися з MSDN, але різниця все ж є. {Binding} не можна використовувати на самому об'єкті (оскільки двосторонній спосіб вимагає властивості), поки {Binding Path =.} Працює.
Сергій Алдухов

@Sergey - У вас є зразок коду, де {Binding} не працює, але {Binding Path =.} Працює? Якщо так, MSDN, мабуть, потрібно оновити ...
micahtan

Легко: var s = "test; DataContext = s; а в <TextBox Text = {Binding} /> - не працює. Але MSDN - це не вікі ...
Сергій Алдухов

8
Ще один приклад: <TextBlock Text = "{Binding Converter = ...}" /> не працює, оскільки вам потрібно встановити Шлях. У цьому випадку Шлях =. корисно.
Ніколас

67

Я знайшов цей WPF Binding CheatSheet кілька місяців тому і вважаю його дуже корисним, особливо для тих, хто вивчає WPF. У ньому є деякі орфографічні помилки, але це все ще досить добре.

Ось невеликий уривок (який повинен мати табличне форматування):

Basic Binding   
{Binding}  Bind to current DataContext. 
{Binding Name}  Bind to the “Name” proeprty of the current DataContext. 
{Bindind Name.Length}  Bind to the Length property of the object in the Name property of the current DataContext. 
{Binding ElementName=SomeTextBox, Path=Text}  Bind to the “Text” property of the element XAML element with name=”SomeTextBox” or x:Name=”SomeTextBox”. 

Пряме посилання на CheatSheet


2
приємний, але що таке {Binding.}. Я шукаю пояснення цього, але не можу знайти?
batmaci

@batmaci Я хочу сказати, що це еквівалентно {Binding }, але минуло досить багато років з того часу, як я багато працював із Xaml, тому я не впевнений.
Райан Версов,

@batmaci, роками пізніше ... {Binding string}подібний до {Binding Path=string}. stringне використовується для Pathбезпосередньої ініціалізації властивості , а як параметр для конструктора, Binding (string path)який потім ініціалізує Pathвластивість. Це працює лише тоді, коли рядок є першим маркером після Binding, решта - звичайними ініціалізаторами (властивість = пари значень). Знаючи, що, Binding .фактично дорівнює Binding Path=.синтаксису Path і властивості, доступний тут .
хвилин
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.