Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Esempio di data-binding in Windows Presentation Foundation

Riprendo il consueto esempio della ListBox con elementi colorati, per illustrare una importante tecnica di programmazione in Windows Presentation Foundation, chiamata data-binding. Si tratta di una tecnica molto versatile, che in questo post illustreremo solo in minima parte ma che può rendere l'idea. In particolare, riprendiamo l'esempio dell'effetto RotateTransform applicato alla ListBox, che abbiamo visto in questo post.

In pratica vogliamo che, mediante un controllo Slider, sia possibile cambiare l'angolo dell'effetto RotateTransform, e conseguentemente il risultato dell'applicazione alla ListBox dell'effetto stesso. Non inserisco figure dimostrative, poichè vorrei che vi divertiate da soli a scoprire il risultato del seguente codice XAML:

<StackPanel>

    <Slider MaxWidth="100" Maximum="360" Minimum="0" Name="Slider1" />

    <ListBox Margin="10,50,10,10" Height="150" Width="250">

        <ListBoxItem Content="Elemento a sfondo verde" Background="Chartreuse" />

        <ListBoxItem Content="Elemento a sfondo giallo" Background="Yellow" />

        <ListBoxItem Content="Elemento a sfondo pomodoro" Background="Tomato" />

        <ListBox.RenderTransform>

            <RotateTransform CenterX="10" CenterY="10" Angle="{Binding Path=Value, ElementName=Slider1}" />

        </ListBox.RenderTransform>

    </ListBox>

</StackPanel>

Utilizziamo il contenitore StackPanel per affiancare due controlli, lo Slider e la ListBox (ma potreste utilizzare un contenitore Canvas per stabilire dimensioni fisse per gli oggetti). Affinchè sia possibile cambiare dinamicamente l'angolo di rotazione per l'effetto RotateTransform, utilizziamo il data-binding. Questa tecnica consente di far si che un controllo modifichi il proprio contenuto, o il proprio aspetto, al variare di un oggetto cui lo stesso può essere collegato. Il data-binding (che funziona in modo analogo in Windows Forms, per quanto riguarda il collegamento ai dati), in fase di design, si realizza utilizzando il tag Binding racchiuso tra parentesi graffe. L'attributo ElementName indica l'oggetto da cui bisogna recuperare il valore desiderato, mentre l'attributo Path indica la proprietà da leggere e assegnare a quella che contiene il tag per il data-binding. Se osservate la riga di codice che inserisce nel form il controllo Slider, noterete che questo ha un valore minimo di zero e massimo di 360 (che sono i valori minimo e massimo per i gradi di rotazione). La proprietà MaxWidth è molto utile, poichè consente di specificare la lunghezza massima in pixel del controllo, altrimenti, in questo caso, sarebbe stato lungo 360 pixel. WPF imposta automaticamente, in modo proporzionato, la lunghezza del controllo.

Avviando l'applicazione, potrete divertirvi a far ruotare la vostra ListBox spostando avanti e indietro lo Slider. Sono gradite osservazioni sul modo con cui ho accennato al data-binding, dal momento che è una continua scoperta anche per me durante lo studio di WPF.

Alessandro

Print | posted on lunedì 27 agosto 2007 18:23 | Filed Under [ Windows Presentation Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET