Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

IMultiValueConverter-Schnittstelle

Ermöglicht das Anwenden benutzerdefinierter Logik in einem MultiBinding.

Namespace:  System.Windows.Data
Assembly:  PresentationFramework (in PresentationFramework.dll)

public interface IMultiValueConverter

Der IMultiValueConverter-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeConvertKonvertiert Quellwerte in einen Wert für das Bindungsziel. Das Datenbindungsmodul ruft diese Methode auf, wenn es Werte aus den Quellbindungen an das Bindungsziel weitergibt.
Öffentliche MethodeConvertBackKonvertiert einen Bindungsziel-Wert in Werte für die Quellbindung.
Zum Seitenanfang

Erstellen Sie zum Zuordnen eines Konverters zu einem MultiBinding eine Klasse, mit der die IMultiValueConverter-Schnittstelle implementiert wird, und implementieren Sie dann die Convert-Methode und die ConvertBack-Methode.

Einzelne Bindungen in der Auflistung können eigene Wertkonverter aufweisen. Weitere Informationen finden Sie unter IValueConverter.

Mit MultiBinding können Sie eine Eigenschaft eines Bindungsziels an eine Liste von Quelleigenschaften binden und anschließend Logik anwenden, um einen Wert mit den angegebenen Eingaben zu erstellen. In diesem Beispiel wird die Verwendung von MultiBinding veranschaulicht.

Im folgenden Beispiel verweist NameListData auf eine Auflistung von PersonName-Objekten, bei denen es sich um Objekte handelt, die zwei Eigenschaften enthalten, firstName und lastName. Im folgenden Beispiel wird ein Wert für TextBlock erzeugt, der Vorname und Nachname einer Person anzeigt. Dabei wird der Nachname zuerst angezeigt.


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


Um zu verstehen, wie das Format erzeugt wird, in dem der Nachname zuerst angezeigt wird, betrachten Sie zunächst die Implementierung von 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 implementiert die IMultiValueConverter-Schnittstelle. NameConverter übernimmt die Werte aus den einzelnen Bindungen und speichert sie im Werteobjektarray. Die Reihenfolge, in der die Binding-Elemente unter dem MultiBinding-Element angezeigt werden, entspricht der Reihenfolge, in der diese Werte im Array gespeichert sind. Auf den Wert des ConverterParameter-Attributs wird vom Parameterargument der Converter-Methode verwiesen, die den Parameter umschaltet, um zu bestimmen, wie der Name formatiert wird.

.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt 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 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft