Che cosa significa "{Binding Path =.}" Nell'associazione WPF?


91

Cosa {Binding Path=.}significa in un'associazione WPF?

Vedo che alcune persone lo usano, ma non sono riusciti a trovare alcuna spiegazione.

Ci sono altri simboli speciali nella sintassi di associazione (diversi da {Binding /})?

Risposte:


59

Questa è una scorciatoia per il collegamento alla sorgente corrente. Per maggiori informazioni vedere qui .

Dalla documentazione in particolare:

Facoltativamente, è possibile utilizzare un percorso punto (.) Per eseguire il binding alla sorgente corrente. Ad esempio, Text="{Binding}"è equivalente a Text="{Binding Path=.}".


1
@ Ray - esattamente i miei pensieri. Se hai intenzione di stenografare, perché fermarti qui?
micahtan

5
Non posso discutere con MSDN, ma c'è ancora una differenza. {Binding} non può essere utilizzato su un oggetto stesso (essendo bidirezionale richiede una proprietà) mentre {Binding Path =.} Funziona.
Sergey Aldoukhov il

@Sergey - Hai un esempio di codice in cui {Binding} non funziona ma {Binding Path =.} Funziona? In tal caso, probabilmente MSDN deve essere aggiornato ...
micahtan

Facilmente: var s = "test; DataContext = s; e in <TextBox Text = {Binding} /> - non funziona. Ma MSDN non è wiki ...
Sergey Aldoukhov

8
Un altro esempio: <TextBlock Text = "{Binding Converter = ...}" /> non funziona perché devi impostare il percorso. In quel caso Path =. è utile.
Nicolas

67

Ho trovato questo WPF Binding CheatSheet alcuni mesi fa e lo trovo molto utile, soprattutto per chiunque stia imparando WPF. Ci sono alcuni errori di ortografia al suo interno, ma è comunque abbastanza buono.

Ecco un piccolo estratto (che dovrebbe avere una formattazione tabulare):

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”. 

Link diretto a CheatSheet


2
bella ma cos'è {Binding.}. Sto cercando una spiegazione per questo ma non riesco a trovarlo?
batmaci

@batmaci voglio dire che è equivalente a {Binding }, ma sono passati alcuni anni da quando ho lavorato molto con Xaml, quindi non ne sono sicuro.
Ryan Versaw

@batmaci, anni dopo ... {Binding string}è simile a {Binding Path=string}. stringnon viene utilizzato per inizializzare Pathdirettamente la proprietà , ma come parametro per il costruttore Binding (string path)che quindi inizializza la Pathproprietà. Funziona solo quando la stringa è il primo token dopo Binding, il resto sono inizializzatori regolari (proprietà = coppie di valore). Sapendo che, Binding .è in effetti uguale a Binding Path=.e la sintassi della proprietà Path è disponibile qui .
min
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.