BindingMode Enum
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.
Arah perubahan penyebaran untuk pengikatan.
public enum class BindingMode
public enum BindingMode
type BindingMode =
Public Enum BindingMode
- Warisan
-
BindingMode
Bidang
Default | 0 | Ketika digunakan dalam Pengikatan, menunjukkan bahwa Pengikatan harus menggunakan DefaultBindingMode. Saat digunakan dalam deklarasi BindableProperty, default ke BindingMode.OneWay. |
OneTime | 4 | Menunjukkan bahwa pengikatan akan diterapkan hanya ketika konteks pengikatan berubah dan nilai tidak akan dipantau untuk perubahan dengan |
OneWay | 2 | Menunjukkan bahwa pengikatan hanya boleh menyebarluaskan perubahan dari sumber (biasanya Model Tampilan) ke target (BindableObject). Ini adalah mode default untuk sebagian besar nilai BindableProperty. |
OneWayToSource | 3 | Menunjukkan bahwa pengikatan hanya boleh menyebarluaskan perubahan dari target (BindableObject) ke sumber (biasanya Model Tampilan). Ini terutama digunakan untuk nilai BindableProperty baca-saja. |
TwoWay | 1 | Menunjukkan bahwa pengikatan harus menyebarkan perubahan dari sumber (biasanya Model Tampilan) ke target (BindableObject) di kedua arah. |
Keterangan
Contoh berikut menunjukkan beberapa kasus penggunaan BindingMode.
public class PersonViewModel
{
public string Name { get; set; }
public string Company { get; set; }
}
Label label;
PersonViewModel viewmodel;
//BindingMode.OneWay
label = new Label ();
label.BindingContext = viewmodel = new PersonViewModel ();
label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.OneWay);
viewmodel.Name = "John Doe";
Debug.WriteLine (label.Text); //prints ""
label.Text = "Foo";
Debug.WriteLine (viewmodel.Name); //prints "John Doe"
//BindingMode.TwoWay
label = new Label ();
label.BindingContext = viewmodel = new PersonViewModel ();
label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.TwoWay);
viewmodel.Name = "John Doe";
Debug.WriteLine (label.Text); //prints "John Doe"
label.Text = "Foo";
Debug.WriteLine (viewmodel.Name); //prints "Foo"
//BindingMode.OneWayToSource
label = new Label ();
label.BindingContext = viewmodel = new PersonViewModel ();
label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.OneWayToSource);
viewmodel.Name = "John Doe";
Debug.WriteLine (label.Text); //prints ""
label.Text = "Foo";
Debug.WriteLine (viewmodel.Name); //prints "Foo"
Berlaku untuk
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk