Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Interfaccia IValueConverter

Consente di applicare la logica personalizzata a un'associazione.

Spazio dei nomi:  System.Windows.Data
Assembly:  PresentationFramework (in PresentationFramework.dll)

public interface IValueConverter

Il tipo IValueConverter espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoConvertconverte un valore.
Metodo pubblicoConvertBackconverte un valore.
In alto

Se si desidera associare un convertitore di valori con un'associazione, creare una classe che implementa ConvertBack collegare quindi distribuire di Convert e di IValueConverter metodi. I convertitori possono modificare dati da un tipo a un altro, traducono i dati in base a informazioni relative alla lingua, o modificare altri aspetti di presentazione. Per esempi di alcuni scenari tipici del convertitore, vedere “la conversione di dati„ in Cenni preliminari sull'associazione dati.

i convertitori di valori sono impostazioni cultura-informati. entrambi ConvertBack e culture i metodi e sono associati a di Convert parametro che indica le informazioni relative alla lingua. Se le informazioni relative alla lingua sono irrilevanti nella conversione, è possibile ignorare il parametro nel convertitore personalizzato.

ConvertBack e parameter i metodi e dispongono inoltre di un parametro denominato di Convert per poter utilizzare la stessa istanza del convertitore con parametri differenti. Ad esempio, è possibile scrivere un convertitore di formattazione che produce i diversi formati di dati in base al parametro di input utilizzate. È possibile utilizzare ConvertBack il di Convert una classe per passare un parametro come argomento in di ConverterParameter e Binding metodi.

In questo esempio viene illustrata la procedura per applicare la conversione ai dati utilizzati nelle associazioni.

Per convertire i dati durante un'associazione, è necessario creare una classe che implementi l'interfaccia IValueConverter, che include i metodi Convert e ConvertBack.

Nell'esempio riportato di seguito viene mostrata l'implementazione di un convertitore di date, che consente di convertire il valore della data passato in modo da visualizzare solo l'anno, il mese e il giorno. Quando si implementa l'interfaccia IValueConverter, è opportuno inserire nell'implementazione un attributo ValueConversionAttribute per indicare agli strumenti di sviluppo i tipi di dati coinvolti nella conversione, come nell'esempio riportato di seguito:


[ValueConversion(typeof(DateTime), typeof(String))]
public class DateConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        DateTime date = (DateTime)value;
        return date.ToShortDateString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        string strValue = value as string;
        DateTime resultDateTime;
        if (DateTime.TryParse(strValue, out resultDateTime))
        {
            return resultDateTime;
        }
        return DependencyProperty.UnsetValue;
    }
}


Una volta creato un convertitore, è possibile aggiungerlo come risorsa nel file Extensible Application Markup Language (XAML). Nell'esempio seguente viene eseguito il mapping disrc allo spazio dei nomi nel quale viene definito DateConverter.


<src:DateConverter x:Key="dateConverter"/>


Infine, è possibile utilizzare il convertitore nell'associazione mediante la seguente sintassi. Nell'esempio riportato di seguito, il contenuto di testo di TextBlock è associato a StartDate, una proprietà di un'origine dati esterna.


<TextBlock Grid.Row="2" Grid.Column="0" Margin="0,0,8,0"
           Name="startDateTitle"
           Style="{StaticResource smallTitleStyle}">Start Date:</TextBlock>
<TextBlock Name="StartDateDTKey" Grid.Row="2" Grid.Column="1" 
    Text="{Binding Path=StartDate, Converter={StaticResource dateConverter}}" 
    Style="{StaticResource textStyleTextBlock}"/>


Le risorse di stile a cui si fa riferimento nell'esempio precedente vengono definite nella sezione relativa alle risorse, non illustrata in questo argomento.

.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft