Bahasa

BindingGroup.UpdateSources Metode

Definisi

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.

Berlaku untuk