Ogni Content, Text e Panel Control espone la proprietà DataContext, che permette di contenere la fonte dati e stabilire se sia visibile oppure no.
Riprendiamo il frammento di codice XAML della scorsa lezione:
<StackPanel x:Name="LayoutRoot">
<TextBlock Text="{Binding Name}" />
<Button Content="{Binding CurrentDriver}" />
</StackPanel>
Quando un controllo figlio, come in questo caso, non ha impostato un DataContext, lo eredita dal padre. Ecco perché nell'esempio impostiamo il DataContext dello StackPanel.
LayoutRoot.DataContext = Team.GetAll().First();
Eseguiamo l'applicazione ed il risultato sarà simile al seguente:
Figura 74. Esempio di binding
Se vogliamo visualizzare una collezione di elementi dobbiamo utilizzare un ItemsControl, per esempio possiamo visualizzare la lista dei Team in un controllo ListBox. Per farlo dobbiamo impostare la proprietà ItemSource esposta da tutti gli ItemsControl. In fase di rendering il comportamento predefinito prevede che se non viene definito come visualizzare un oggetto contenuto nella lista verrà utilizzato il valore restituito dal metodo ToString. Diversamente possiamo indicare quale proprietà visualizzare tramite la proprietà DisplayMemberPath.
<StackPanel x:Name="LayoutRoot">
<ListBox Margin="10"
ItemsSource="{Binding}"
DisplayMemberPath="Name" />
</StackPanel>
In questo caso utilizziamo il Markup Extension senza parametri, per indicare al motore di Binding che siamo interessati a tutta la fonte dati, ovvero il DataContext. Dopodiché modifichiamo anche il code-behind in modo che carichi l'intera lista di Team.
private List<Team> teams;
public Page()
{
InitializeComponent();
teams = Team.GetAll();
LayoutRoot.DataContext = teams;
}
Il risultato sarà il seguente:
Figura 75. Visualizzare una collezione di elementi
LINQ e la trappola della 'deferred execution'Una "trappola" in cui si può incappare utilizzando il risultato di... |
C#, le Custom Type ConversionConversioni personalizzate tra classi, creare metodi particolari per... |
Introduzione a Entity FrameworkIl framework ORM messo a disposizione da .NET |
Repeater: visualizzare un feed RSSUtilizzare il controllo XMLDataSource e sfruttare il metodo XPath()... |
Repeater, il server control "semplice"Cos'è e come funziona il controllo Repeater |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Guida Visual Studio 2010L'ambiente di sviluppo di riferimento per sviluppare applicazioni su... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |