Le funzionalità di Data Binding consentono una buona separazione tra le sorgenti dati e la loro visualizzazione nelle interfacce utente, definendo direttamente nel markup il nome dei campi degli oggetti associati a ciascun controllo.
Text="{Binding Path=Title}"Qualora ci sia l'esigenza di manipolare i dati in Binding, come ad esempio per una renderizzazione diversa, è possibile realizzare classi Converter personalizzate in modo da modificare il valore da associare al controllo lasciando inalterato il dato originale.
Tali classi devono implementare l'interfaccia IValueConverter:
public class TitleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}<UserControl x:Class="ASPItalia.ImageGallery.MediaItem"
xmlns:MediaItem="clr-namespace:ASPItalia.ImageGallery"
Cursor="Hand">
<UserControl.Resources>
<MediaItem:TitleConverter x:Key="TitleConverter"></MediaItem:TitleConverter>
</UserControl.Resources>Text="{Binding Path=Title, Converter={StaticResource TitleConverter}}"Text="{Binding Path=Title, Converter={StaticResource TitleConverter}, ConverterParameter=20}"public class TitleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int _lenght = 0;
string _strLenght = parameter as string;
if (_strLenght != null)
int.TryParse(_strLenght, out _lenght);
string _value = value as string;
if (_value != null && _lenght > 0 && _value.Length >= _lenght)
{
_value = _value.Substring(0, _lenght);
_value = String.Format("{0}..", _value);
}
return _value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
//implementazione specifica per il binding two-way
throw new NotImplementedException();
}
}Con questa semplice classe TitleConverter, il ConverterParameter definisce quando il testo "Title" debba essere esteso e troncato posponendo due puntini "..". La possibilità di definire il valore direttamente nel markup aggiunge velocità allo sviluppo ed alla manutenzione del progetto.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Running workloads and operations with Azure Kubernetes Service
- .@scottgu sottolinea come #vs live share funzioni anche in situazioni ibride #VSCode e #VS2017, con sistemi operativi differenti.la preview sarà disponibile a partire da oggi #MSFTConnect
- Future Dev Day - Milano
- Global Azure 2026 - ASPItalia.com - Milano
- Rilasciato il Service Pack 3 di SQL Server 2005
- Windows Azure SDK si aggiorna alla versione 1.3
- Windows Phone 7 Mango il 24 maggio a New York. A seguire i nuovi tool?
- Rilasciata una preview di Windows Phone SDK 7.1.1 per Tango




