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

Propriedade ItemsControl.ItemBindingGroup

Obtém ou define o BindingGroup que é copiado para cada item da ItemsControl.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (em PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[BindableAttribute(true)]
public BindingGroup ItemBindingGroup { get; set; }
<object>
  <object.ItemBindingGroup>
    <BindingGroup .../>
  </object.ItemBindingGroup>
</object>

Valor de propriedade

Tipo: System.Windows.Data.BindingGroup
O BindingGroup que é copiado para cada item da ItemsControl.

Ao definir o ItemBindingGroup cada contêiner do item de propriedade, obtém uma BindingGroup que tem o mesmo ValidationRule objetos como o ItemBindingGroup, mas as propriedades que descrevem os dados em ligações, como Items e BindingExpressions, são específicos para os dados para cada item a ItemsControl. Você deve acessar o contêiner de item BindingGroup para executar operações como validar os dados e verifique se há erros em um item.

O exemplo a seguir é parte de um aplicativo que solicita que o usuário insira vários clientes e atribuir a um representante de vendas para cada cliente e, em seguida, verifica que o representante de vendas e o cliente pertencem à mesma região. O exemplo define o ItemBindingGroup da ItemsControl assim a ValidationRule, AreasMatch, que irá validar cada item. O exemplo também cria um Label que exibe erros de validação. Observe que o Content da Label está vinculado a um ValidationError que ele obtém a partir de Validation.ValidationAdornerSiteFor propriedade. O valor de Validation.ValidationAdornerSiteFor é o contêiner do item que tem o erro.


<ItemsControl Name="customerList"  ItemTemplate="{StaticResource ItemTemplate}"
              ItemsSource="{Binding}">
  <ItemsControl.ItemBindingGroup>
    <BindingGroup>
      <BindingGroup.ValidationRules>
        <src:AreasMatch/>
      </BindingGroup.ValidationRules>
    </BindingGroup>
  </ItemsControl.ItemBindingGroup>
  <ItemsControl.ItemContainerStyle>
    <Style TargetType="{x:Type ContentPresenter}">
      <Setter Property="Validation.ValidationAdornerSite"
              Value="{Binding ElementName=validationErrorReport}"/>
    </Style>
  </ItemsControl.ItemContainerStyle>
</ItemsControl>


...


<Label Name="validationErrorReport" 
       Content="{Binding RelativeSource={RelativeSource Self}, 
       Path=(Validation.ValidationAdornerSiteFor).(Validation.Errors)[0].ErrorContent}"
       Margin="5" Foreground="Red" HorizontalAlignment="Center"/>


O exemplo a seguir obtém o item de contêiner e chamadas UpdateSources no recipiente de BindingGroup para validar os dados. Você deve validar os dados, chamando um método no contêiner do item BindingGroup, não do ItemBindingGroup da ItemsControl.


void saveCustomer_Click(object sender, RoutedEventArgs e)
{
    Button btn = sender as Button;
    FrameworkElement container = (FrameworkElement) customerList.ContainerFromElement(btn);

    // If the user is trying to change an items, when another item has an error,
    // display a message and cancel the currently edited item.
    if (bindingGroupInError != null && bindingGroupInError != container.BindingGroup)
    {
        MessageBox.Show("Please correct the data in error before changing another customer");
        container.BindingGroup.CancelEdit();
        return;
    }

    if (container.BindingGroup.UpdateSources())
    {
        bindingGroupInError = null;
        MessageBox.Show("Item Saved");
    }
    else
    {
        bindingGroupInError = container.BindingGroup;
    }

}


.NET Framework

Com suporte em: 4, 3.5 SP1, 3.0 SP2

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos de sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft