Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

IMultiValueConverter.Convert (Método)

Convierte valores de origen a un valor para destino de enlace. El motor de enlace de datos llama a este método cuando se propaga los valores de enlaces de origen a destino de enlace.

Espacio de nombres:  System.Windows.Data
Ensamblado:  PresentationFramework (en PresentationFramework.dll)

Object Convert(
	Object[] values,
	Type targetType,
	Object parameter,
	CultureInfo culture
)

Parámetros

values
Tipo: System.Object[]
Matriz de valores que los enlaces de origen en MultiBinding generan. El valor UnsetValue indica que el enlace de origen no tiene ningún valor a solucionar la conversión.
targetType
Tipo: System.Type
El tipo de la propiedad del destino.
parameter
Tipo: System.Object
El parámetro de convertidor a utilizar.
culture
Tipo: System.Globalization.CultureInfo
La referencia cultural a usar en el convertidor.

Valor devuelto

Tipo: System.Object
un valor convertido.
si el método devuelve null, se utiliza el valor válido de null .
un valor devuelto de DependencyProperty.UnsetValue indica que el convertidor no genera un valor, y que el enlace utilizará FallbackValue si está disponible, o bien utilice el valor predeterminado.
un valor devuelto de Binding.DoNothing indica que el enlace no transfiere el valor ni usa FallbackValue o el valor predeterminado.

El motor de enlace de datos no detecta las excepciones producidas por un convertidor tras. Cualquier excepción producida por el método de Convert , o cualquier excepción no detectada producida por los métodos que las llamadas al método de Convert , se tratan como errores en tiempo de ejecución. Problemas posibles identificador devolviendo DependencyProperty.UnsetValue.

MultiBinding permite enlazar una propiedad del destino de enlace a una lista de propiedades de origen y, a continuación, aplicar la lógica para generar un valor con las entradas indicadas. En este ejemplo de complemento se muestra cómo utilizar MultiBinding.

En el ejemplo siguiente, NameListData hace referencia a una colección de objetos PersonName, que son objetos que contienen dos propiedades, firstName y lastName. En el ejemplo siguiente se genera un objeto TextBlock que muestra el nombre y el apellido de una persona, con el apellido en primer lugar.


<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>


Para entender cómo se genera el formato que muestra primero el apellido, estudiaremos la implementación de 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;
    }
}


NameConverter implementa la interfaz IMultiValueConverter. NameConverter toma los valores de los enlaces individuales y los almacena en la matriz de objetos de valores. El orden en el que los elementos Binding aparecen bajo el elemento MultiBinding es el orden en el que esos valores están almacenados en la matriz. El argumento de parámetro del método de Converter, que aplica una modificación al parámetro para determinar cómo dar formato al nombre, hace referencia al valor del atributo ConverterParameter.

.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft