TOC

This article has been localized into Italian by the community.

Data binding:

Ciao, mondo legato!

Proprio come abbiamo iniziato questo tutorial con il classico esempio "Hello, world!", ti mostreremo la semplicità nell'utilizzo del data binding in WPF con un esempio "Hello, bound world!". Immergiamoci nell'argomento e te lo spiegherò più tardi:

<Window x:Class="WpfTutorialSamples.DataBinding.HelloBoundWorldSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="HelloBoundWorldSample" Height="110" Width="280">
    <StackPanel Margin="10">
		<TextBox Name="txtValue" />
		<WrapPanel Margin="0,10">
			<TextBlock Text="Value: " FontWeight="Bold" />
			<TextBlock Text="{Binding Path=Text, ElementName=txtValue}" />
		</WrapPanel>
	</StackPanel>
</Window>

Questo semplice esempio illustra come associamo il valore del TextBlock per corrispondere alla proprietà Text della TextBox. Come puoi vedere dallo screenshot, il TextBlock è aggiornato automaticamente quando inserisci del testo nella TextBox. In un ambiente non-bind, questo ci richiederebbe di ascoltare un evento nella TextBox e poi aggiornare il TextBlock ogni qual volta il testo cambia, ma col data binding questa connessione è stabilita utilizzando solo il markup.

La sintassi del Binding

Tutta la magia nasce all'interno delle parentesi graffe, dove XAML encapsula un'estensione Markup. Per il data binding, utilizziamo l'estensione Binding che ci permette di descrivere la relazione per la proprietà Text. Nella sua forma più semplice, un bind può essere così:

{Binding}

Questo semplicemente ritorna il data context corrente (di più dispetto all'argomento dopo). Questo può senz'altro essere utile, ma nelle situazioni più comuni vorresti associare una proprietà ad un'altra proprietà nel data context. Un binding come quello assomiglia a questo:

{Binding Path=NomeDellaProprieta}

Il Path tiene traccia della proprietà alla quale vuoi fare il bind, comunque visto che Path è la proprietà di default di un binding, puoi anche ometterlo, così:

{Binding NomeDellaProprieta}

Vedrai molti esempi, molti dei quali dove il Path è esplicito e altri dove è implicito. In fine sta a te valutare se scriverlo o farne a meno.

Un binding ha però molte proprietà, una delle quali è ElementName che useremo in questo esempio. Questo ci permette di connettere direttamente un elemento UI ad un altro come fonte. Ogni proprietà impostata nel binding va separata da una virgola:

{Binding Path=Text, ElementName=txtValue}

Riepilogo

Questo ero solo un assaggio di tutte le possibilità di binding in WPF. Nei prossimi capitoli, ne conosceremo di nuovi, per dimostrarti quanto robusto può essere il data binding.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!