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

정의

BindingGroup의 각 항목에 복사되는 ItemsControl을 가져오거나 설정합니다.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

속성 값

BindingGroup의 각 항목에 복사되는 ItemsControl입니다.The BindingGroup that is copied to each item in the ItemsControl.

예제

다음 예제에서는 여러 고객을 입력 하 고 각 고객에 게는 영업 담당자를 할당 하 라는 메시지는 애플리케이션의 일부 이며 그런 다음 영업 담당자와 고객 동일한 지역에 속해 있는지를 확인 합니다.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. 예제에서는 합니다 ItemBindingGroupItemsControl 하므로 ValidationRule, AreasMatch, 각 항목의 유효성을 검사 합니다.The example sets the ItemBindingGroup of the ItemsControl so the ValidationRule, AreasMatch, will validate each item. 예제에서는 Label 유효성 검사 오류를 표시 하는 합니다.The example also creates a Label that displays validation errors. 있음을 합니다 ContentLabel 바인딩되는 ValidationError 에서 가져오는 Validation.ValidationAdornerSiteForProperty 속성.Notice that the Content of the Label is bound to a ValidationError that it gets from the Validation.ValidationAdornerSiteForProperty property. 변수의 Validation.ValidationAdornerSiteForProperty 오류가 있는 항목 컨테이너입니다.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"/>

다음 예제에서는 항목 컨테이너 및 호출을 가져옵니다 UpdateSources 컨테이너의에서 BindingGroup 에서 데이터 유효성 검사 합니다.The following example gets the item container and calls UpdateSources on the container's BindingGroup to validate the data. 항목 컨테이너의 메서드를 호출 하 여 데이터의 유효성을 검사 해야 합니다 BindingGroup이 아니라 합니다 ItemBindingGroupItemsControl합니다.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

설명

설정 하는 경우는 ItemBindingGroup 속성인 각 항목 컨테이너를 가져옵니다을 BindingGroup 는 동일 ValidationRule 개체로 ItemBindingGroup, 하지만 같은 바인딩에 데이터를 설명 하는 속성 ItemsBindingExpressions는 각 항목에 대 한 데이터에 특정 된 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. 항목 컨테이너의 액세스 해야 BindingGroup 수행 하려면 작업 유효성 검사와 같은 데이터 및 항목에서 오류를 확인 합니다.You must access the item container's BindingGroup to perform operations such as validate the data and check for errors on an item.

적용 대상