BindingGroup.UpdateSources Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menjalankan pengonversi pada pengikatan dan ValidationRule objek yang memiliki ValidationStep properti yang diatur ke RawProposedValue, ConvertedProposedValue, atau UpdatedValue dan menyimpan nilai target ke objek sumber jika semua aturan validasi berhasil.
public:
bool UpdateSources();
public bool UpdateSources();
member this.UpdateSources : unit -> bool
Public Function UpdateSources () As Boolean
Mengembalikan
true jika semua aturan validasi berhasil; jika tidak, false.
Contoh
Contoh berikut adalah bagian dari aplikasi yang meminta pengguna untuk memasukkan beberapa pelanggan dan menetapkan perwakilan penjualan untuk setiap pelanggan. Aplikasi memeriksa bahwa perwakilan penjualan dan pelanggan termasuk dalam wilayah yang sama. Contoh memanggil UpdateSources untuk memvalidasi pengikatan dan menyimpan nilai ke sumber jika semua aturan validasi berhasil.
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
Keterangan
Metode ini memperbarui sumber jika setiap ValidationRule berhasil, tetapi tidak menyebabkan sumber melakukan perubahan yang tertunda dan mengakhiri transaksi edit. Artinya, jika objek sumber mengimplementasikan IEditableObject. Memanggil metode ini tidak menyebabkan EndEdit dipanggil. CommitEdit Gunakan metode agar sumber menerapkan perubahan yang tertunda.