BindingGroup.UpdateSources Yöntem
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.
Bağlamada dönüştürücüsü ve ValidationRule özelliği , ConvertedProposedValueveya UpdatedValue olarak ayarlanmış RawProposedValuenesneleri ValidationStep çalıştırır ve tüm doğrulama kuralları başarılı olursa hedeflerin değerlerini kaynak nesnelere kaydeder.
public:
bool UpdateSources();
public bool UpdateSources ();
member this.UpdateSources : unit -> bool
Public Function UpdateSources () As Boolean
Döndürülenler
true
tüm doğrulama kuralları başarılı olursa; aksi takdirde , false
.
Örnekler
Aşağıdaki örnek, kullanıcıdan birden çok müşteri girmesini ve her müşteriye bir satış temsilcisi atamasını isteyen bir uygulamanın parçasıdır. Uygulama, satış temsilcisinin ve müşterinin aynı bölgeye ait olup olmadığını denetler. Örnek, tüm doğrulama kuralları başarılı olursa bağlamaları doğrulamayı ve değerleri kaynağa kaydetmeyi çağırır UpdateSources .
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
Bu yöntem, her ValidationRule başarılı olursa kaynağı güncelleştirir, ancak kaynakların bekleyen değişiklikleri işlemesine ve düzenleme işlemini sonlandırmasına neden olmaz. Diğer bir ifadeyle, kaynak nesne uygularsa IEditableObject. Bu yöntemin çağrılması çağrılmasına neden EndEdit olmaz. CommitEdit Kaynakların bekleyen değişiklikleri işlemesini sağlamak için yöntemini kullanın.