ItemsControl.ItemBindingGroup Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
içindeki ItemsControlher öğeye kopyalanan öğesini alır veya ayarlarBindingGroup.
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; }
[<System.ComponentModel.Bindable(true)>]
member this.ItemBindingGroup : System.Windows.Data.BindingGroup with get, set
Public Property ItemBindingGroup As BindingGroup
Özellik Değeri
içindeki BindingGroup her öğeye ItemsControlkopyalanan.
- Öznitelikler
Örnekler
Aşağıdaki örnek, kullanıcıdan birden çok müşteri girmesini ve her müşteriye bir satış temsilcisi atamasını isteyen ve ardından satış temsilcisiyle müşterinin aynı bölgeye ait olup olmadığını denetleyan bir uygulamanın parçasıdır. Örnek öğesinin öğesini, öğesinin her öğeyi ValidationRuledoğrulayacak şekilde ayarlar.ItemBindingGroupItemsControlAreasMatch
Örnek ayrıca doğrulama hatalarını görüntüleyen bir Label de oluşturur. öğesinin ContentLabel özelliğinden Validation.ValidationAdornerSiteForProperty aldığı bir ValidationError öğesine bağlı olduğuna dikkat edin. değeri Validation.ValidationAdornerSiteForProperty , hatasını içeren öğe kapsayıcısıdır.
<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"/>
Aşağıdaki örnek öğe kapsayıcısını alır ve verileri doğrulamak için kapsayıcıyı BindingGroup çağırırUpdateSources. öğesinin üzerinde değil ItemBindingGroupItemsControl, öğe kapsayıcısının BindingGroupüzerinde bir yöntem çağırarak verileri doğrulamanız gerekir.
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
Açıklamalar
özelliğini ayarladığınızdaItemBindingGroup, her öğe kapsayıcısı ile aynı ValidationRule nesnelere ItemBindingGroupsahip olan bir BindingGroup alır, ancak bağlamalardaki verileri açıklayan ve BindingExpressionsgibi Items özellikler içindeki ItemsControlher öğenin verilerine özgüdür. Verileri doğrulama ve bir öğedeki hataları denetleme gibi işlemleri gerçekleştirmek için öğe kapsayıcısına BindingGroup erişmeniz gerekir.