Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe MultiBinding

Descreve uma coleção de Binding objetos anexados a um único destino de vinculaçãopropriedade .

Namespace:  System.Windows.Data
Assembly:  PresentationFramework (em PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/xaml/presentation

[ContentPropertyAttribute("Bindings")]
public class MultiBinding : BindingBase, 
	IAddChild
<MultiBinding>
  Bindings
</MultiBinding>

Você pode especificar várias ligações em um MultiBinding objeto. Quando você usa o MultiBinding objeto com um conversor produz um valor final para o destino de vinculação com base nos valores dessas ligações.Por exemplo, cor pode ser computada a partir de valores de vermelhos, azuis e verdes, que podem ser valores do mesmo ou diferente fonte da ligação objetos.Quando move um valor de destino para as fontes, o valor da propriedade de destino é traduzido como um conjunto de valores que são alimentados volta para as ligações.

sistema autônomo valores do Mode e UpdateSourceTrigger propriedades determinam a funcionalidade dos MultiBinding e são usados sistema autônomo valores padrão para todas sistema autônomo ligações na coleção, a menos que uma vinculação individual substitui essas propriedades. Por exemplo, se o Mode propriedade no MultiBinding objeto é definido como TwoWay, e, em seguida, todas as ligações na coleção são consideradas TwoWay a menos que você defina um diferente Mode valor em uma das ligações explicitamente. Para obter mais informações, consulte o Binding.Mode e Binding.UpdateSourceTrigger Propriedades.

MultiBinding suporta atualmente somente objetos do tipo Binding e não MultiBinding ou PriorityBinding.

MultiBinding permite que você vincule uma propriedade de destino de vínculo a uma lista de propriedades da fonte e, então, aplique lógica para produzir um valor com as entradas disponíveis. Este exemplo demonstra como usar MultiBinding.

No exemplo a seguir, NameListData refere-se a uma coleção de objetos PersonName, que são objetos que contêm duas propriedades, firstName e lastName. O exemplo a seguir produz um TextBlock que mostra os nomes e sobrenomes de uma pessoa com o sobrenome em primeiro 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 como o formato é produzido, vamos dar uma olhada na implementação do NameConverter:

publicclass 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 a interface IMultiValueConverter. NameConverter recebe os valores dos vínculos individuais e os armazena no array de valores de objeto. A ordem na qual os elementos Binding aparecem sob o elemento MultiBinding é a ordem em que esses valores são armazenados no array. O valor do atributo ConverterParameter é referenciado pelo argumento do método Converter, que executa uma troca no parâmetro para determinar como formatar o nome.

For the complete sample, see Implementando parametrizado MultiBinding exemplo.

Consulte Demonstração de ligação de dados para um exemplo de uma implementação IMultiValueConverter.

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows Server 2003

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft