(0) exportieren Drucken
Alle erweitern

IMultiValueConverter-Schnittstelle

Aktualisiert: November 2007

Ermöglicht das Anwenden benutzerdefinierter Logik in einem MultiBinding.

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

public interface IMultiValueConverter
public interface IMultiValueConverter
public interface IMultiValueConverter
Schnittstellen können in XAML nicht direkt implementiert werden. Informationen finden Sie unter Typen, die diese Schnittstelle implementieren.

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.

Das vollständige Beispiel finden Sie unter Beispiel für das Implementieren von parametrisierter MultiBinding.

Ein weiteres Beispiel für eine IMultiValueConverter-Implementierung finden Sie unter Demo für die Datenbindung.

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft