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 IMultiValueConverter

Consente di applicare la logica personalizzata in un oggetto MultiBinding.

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

public interface IMultiValueConverter

Il tipo IMultiValueConverter espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoConvertLa conversione dei valori in un valore per destinazione di associazione. Il motore di associazione dati chiama questo metodo quando passa i valori dalle associazioni di origine a destinazione di associazione.
Metodo pubblicoConvertBackConverte un oggetto destinazione di associazione valore i valori necessari di origine.
In alto

Per associare un convertitore con un oggetto ConvertBack , creare una classe che implementa di Convert collegare quindi distribuire di MultiBindinge IMultiValueConverter metodi.

Le singole associazioni nella raccolta possono essere relativi convertitori di valori. Per ulteriori informazioni, vedere IValueConverter.

La classe MultiBinding consente di associare una proprietà di destinazione dell'associazione a un elenco di proprietà di origine e di applicare quindi una logica per produrre un valore con gli input specificati. In questo esempio viene mostrato come utilizzare la classe MultiBinding.

Nell'esempio riportato di seguito, l'elemento NameListData fa riferimento a una raccolta di oggetti PersonName, che contengono due proprietà, firstName e lastName. Nell'esempio seguente viene generato un oggetto TextBlock in cui sono mostrati, nell'ordine, il cognome e il nome di una persona.


<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:c="clr-namespace:SDKSample"
  x:Class="SDKSample.Window1"
  Width="400"
  Height="280"
  Title="MultiBinding Sample">
	
  <Window.Resources>
    <c:NameList x:Key="NameListData"/>
    <c:NameConverter x:Key="myNameConverter"/>


...


</Window.Resources>


...


<TextBlock Name="textBox2" DataContext="{StaticResource NameListData}">
  <TextBlock.Text>
    <MultiBinding Converter="{StaticResource myNameConverter}"
                  ConverterParameter="FormatLastFirst">
      <Binding Path="FirstName"/>
      <Binding Path="LastName"/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>


...


</Window>


Per comprendere il modo in cui viene generato il formato cognome-nome, è necessario esaminare l'implementazione di NameConverter:


public class NameConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        string name;

        switch ((string)parameter)
        {
            case "FormatLastFirst":
                name = values[1] + ", " + values[0];
                break;
            case "FormatNormal":
            default:
                name = values[0] + " " + values[1];
                break;
        }

        return name;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        string[] splitValues = ((string)value).Split(' ');
        return splitValues;
    }
}


L'oggetto NameConverter implementa l'interfaccia IMultiValueConverter. NameConverter accetta i valori delle singole associazioni e li archivia nella matrice di oggetti valori. L'ordine in cui gli elementi Binding vengono visualizzati nell'elemento MultiBinding corrisponde all'ordine in cui tali valori sono archiviati nella matrice. Per fare riferimento al valore dell'attributo ConverterParameter si utilizza l'argomento di parametro del metodo Converter, che esegue una modifica del parametro per determinare la modalità di formattazione del nome.

.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