ItemsControl.ItemBindingGroup ItemsControl.ItemBindingGroup ItemsControl.ItemBindingGroup ItemsControl.ItemBindingGroup Property

Definition

Ruft die BindingGroup ab, die in die einzelnen Elemente im ItemsControl kopiert wird, oder legt diese fest.Gets or sets the BindingGroup that is copied to each item in the ItemsControl.

public:
 property System::Windows::Data::BindingGroup ^ ItemBindingGroup { System::Windows::Data::BindingGroup ^ get(); void set(System::Windows::Data::BindingGroup ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.Data.BindingGroup ItemBindingGroup { get; set; }
member this.ItemBindingGroup : System.Windows.Data.BindingGroup with get, set
Public Property ItemBindingGroup As BindingGroup

Eigenschaftswert

Die BindingGroup, die in die einzelnen Elemente im ItemsControl kopiert wird.The BindingGroup that is copied to each item in the ItemsControl.

Beispiele

Im folgende Beispiel ist Teil einer Anwendung, die der Benutzer aufgefordert, geben mehrere Kunden aus, und weisen Sie jedem Kunden einen Vertriebsmitarbeiter, und klicken Sie dann überprüft, dass der Vertriebsmitarbeiter und dem Kunden in derselben Region gehören.The following example is part of an application that prompts the user to enter multiple customers and assign a sales representative to each customer, and then checks that the sales representative and the customer belong to the same region. Im Beispiel wird die ItemBindingGroup von der ItemsControl daher ValidationRule, AreasMatch, überprüft jedes Element.The example sets the ItemBindingGroup of the ItemsControl so the ValidationRule, AreasMatch, will validate each item. Außerdem erstellt das Beispiel einer Label , die Validierungsfehler anzeigt.The example also creates a Label that displays validation errors. Beachten Sie, dass die Content von der Label gebunden ist eine ValidationError , die es abruft, aus der Validation.ValidationAdornerSiteForProperty Eigenschaft.Notice that the Content of the Label is bound to a ValidationError that it gets from the Validation.ValidationAdornerSiteForProperty property. Der Wert des Validation.ValidationAdornerSiteForProperty ist der Elementcontainer, die den Fehler enthält.The value of Validation.ValidationAdornerSiteForProperty is the item container that has the error.

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

Im folgenden Beispiel wird die Elementcontainer und ruft UpdateSources für des Containers des BindingGroup zum Überprüfen der Daten.The following example gets the item container and calls UpdateSources on the container's BindingGroup to validate the data. Sie müssen die Daten überprüfen, durch Aufrufen einer Methode des Elementcontainers BindingGroupnicht auf die ItemBindingGroup von der ItemsControl.You must validate the data by calling a method on the item container's BindingGroup, not on the ItemBindingGroup of the 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;
    }

}
Private Sub saveCustomer_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
	Dim btn As Button = TryCast(sender, Button)
	Dim container As FrameworkElement = CType(customerList.ContainerFromElement(btn), FrameworkElement)

	' 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 IsNot Nothing AndAlso bindingGroupInError IsNot container.BindingGroup Then
		MessageBox.Show("Please correct the data in error before changing another customer")
		container.BindingGroup.CancelEdit()
		Return
	End If

	If container.BindingGroup.UpdateSources() Then
		bindingGroupInError = Nothing
		MessageBox.Show("Item Saved")
	Else
		bindingGroupInError = container.BindingGroup
	End If

End Sub

Hinweise

Beim Festlegen der ItemBindingGroup -Eigenschaft, um alle Elementcontainer Ruft eine BindingGroup verfügt, die über die gleiche ValidationRule Objekte als die ItemBindingGroup, jedoch die Eigenschaften, die beschreiben, die Daten in den Bindungen, z. B. Items und BindingExpressions, sind Daten für jedes Element in der ItemsControl.When you set the ItemBindingGroup property, each item container gets a BindingGroup that has the same ValidationRule objects as the ItemBindingGroup, but the properties that describe the data in the bindings, such as Items and BindingExpressions, are specific to the data for each item in the ItemsControl. Sie müssen auf der Elementcontainers zugreifen BindingGroup auszuführenden Vorgänge wie z. B. Überprüfen Sie die Daten und für ein Element auf Fehler überprüfen.You must access the item container's BindingGroup to perform operations such as validate the data and check for errors on an item.

Gilt für: