BindableObjectExtensions.SetBinding 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.
Aşırı Yüklemeler
SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String) |
Bir özelliğe bağlama oluşturur ve uygular. |
SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object) |
Kaynak nesnedeki bir özellik ile hedef nesnedeki bir özellik arasında bir bağlama oluşturur. |
SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String)
- Kaynak:
- BindableObjectExtensions.cs
- Kaynak:
- BindableObjectExtensions.cs
Bir özelliğe bağlama oluşturur ve uygular.
public static void SetBinding (this Microsoft.Maui.Controls.BindableObject self, Microsoft.Maui.Controls.BindableProperty targetProperty, string path, Microsoft.Maui.Controls.BindingMode mode = Microsoft.Maui.Controls.BindingMode.Default, Microsoft.Maui.Controls.IValueConverter converter = default, string stringFormat = default);
static member SetBinding : Microsoft.Maui.Controls.BindableObject * Microsoft.Maui.Controls.BindableProperty * string * Microsoft.Maui.Controls.BindingMode * Microsoft.Maui.Controls.IValueConverter * string -> unit
<Extension()>
Public Sub SetBinding (self As BindableObject, targetProperty As BindableProperty, path As String, Optional mode As BindingMode = Microsoft.Maui.Controls.BindingMode.Default, Optional converter As IValueConverter = Nothing, Optional stringFormat As String = Nothing)
Parametreler
- self
- BindableObject
- targetProperty
- BindableProperty
Bağlamanın ayarlanacağı BindableProperty.
- mode
- BindingMode
BindingMode Bağlama için. Bu parametre isteğe bağlıdır. Varsayılan Default değeridir.
- converter
- IValueConverter
Bağlama için bir IValueConverter . Bu parametre isteğe bağlıdır. Varsayılan null
değeridir.
- stringFormat
- String
Bağlama için stringFormat olarak kullanılan bir dize. Bu parametre isteğe bağlıdır. Varsayılan null
değeridir.
Açıklamalar
Aşağıdaki örnekte bağlama ayarlamak için uzantı yönteminin nasıl kullanılacağı gösterilmektedir.
public class PersonViewModel
{
public string Name { get; set; }
public string Company { get; set; }
}
// ...
var vm = new PersonViewModel {
Name = "John Doe",
Company = "Xamarin"
}
var label = new Label ();
label.SetBinding (Label.TextProperty, "Name"); // "Name" is the property on the view model
label.BindingContext = vm;
Debug.WriteLine (label.Text); // prints "John Doe"
Şunlara uygulanır
SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object)
- Kaynak:
- BindableObjectExtensions.cs
Kaynak nesnedeki bir özellik ile hedef nesnedeki bir özellik arasında bir bağlama oluşturur.
public static void SetBinding<TSource,TProperty> (this Microsoft.Maui.Controls.BindableObject self, Microsoft.Maui.Controls.BindableProperty targetProperty, Func<TSource,TProperty> getter, Microsoft.Maui.Controls.BindingMode mode = Microsoft.Maui.Controls.BindingMode.Default, Microsoft.Maui.Controls.IValueConverter? converter = default, object? converterParameter = default, string? stringFormat = default, object? source = default, object? fallbackValue = default, object? targetNullValue = default);
static member SetBinding : Microsoft.Maui.Controls.BindableObject * Microsoft.Maui.Controls.BindableProperty * Func<'Source, 'Property> * Microsoft.Maui.Controls.BindingMode * Microsoft.Maui.Controls.IValueConverter * obj * string * obj * obj * obj -> unit
<Extension()>
Public Sub SetBinding(Of TSource, TProperty) (self As BindableObject, targetProperty As BindableProperty, getter As Func(Of TSource, TProperty), Optional mode As BindingMode = Microsoft.Maui.Controls.BindingMode.Default, Optional converter As IValueConverter = Nothing, Optional converterParameter As Object = Nothing, Optional stringFormat As String = Nothing, Optional source As Object = Nothing, Optional fallbackValue As Object = Nothing, Optional targetNullValue As Object = Nothing)
Tür Parametreleri
- TSource
Kaynak türü.
- TProperty
Özellik türü.
Parametreler
- self
- BindableObject
- targetProperty
- BindableProperty
BindableProperty Bağlamanın ayarlanacağı yer.
- getter
- Func<TSource,TProperty>
Kaynak özelliğini almak için kullanılan bir getter yöntemi.
- mode
- BindingMode
Bağlama modu. Bu özellik isteğe bağlıdır. Varsayılan Default değeridir.
- converter
- IValueConverter
Dönüştürücü. Bu parametre isteğe bağlıdır. Varsayılan null
değeridir.
- converterParameter
- Object
Dönüştürücüye geçirmek için kullanıcı tanımlı bir parametre. Bu parametre isteğe bağlıdır. Varsayılan null
değeridir.
- stringFormat
- String
Dize biçimi. Bu parametre isteğe bağlıdır. Varsayılan null
değeridir.
- source
- Object
Bu bağlama için kaynak olarak kullanılan nesne. Bu parametre isteğe bağlıdır. Varsayılan null
değeridir.
- fallbackValue
- Object
Belirtilen değer yoksa özelliği için varsayılan değer yerine kullanılacak değer.
- targetNullValue
- Object
Bağlamanın hedefi olduğunda ilişkili özellik için sağlanacak değer.null
Özel durumlar
Açıklamalar
Aşağıdaki örnek, uzantı yöntemini kullanarak bağlama ayarını gösterir.
public class PersonViewModel
{
public string Name { get; set; }
public Address? Address { get; set; }
// ...
}
var vm = new PersonViewModel { Name = "John Doe" };
var label = new Label();
label.SetBinding(Label.TextProperty, static (PersonViewModel vm) => vm.Name);
label.BindingContext = vm;
vm.Name = "Jane Doe";
Debug.WriteLine(label.Text); // prints "Jane Doe"
Bağlama tanımlamak için tüm yöntemler kullanılamaz. İfade basit bir özellik erişim ifadesi olmalıdır. Geçerli ve geçersiz ifade örnekleri aşağıda verilmiştir:
// Valid: Property access
static (PersonViewModel vm) => vm.Name;
static (PersonViewModel vm) => vm.Address?.Street;
// Valid: Array and indexer access
static (PersonViewModel vm) => vm.PhoneNumbers[0];
static (PersonViewModel vm) => vm.Config["Font"];
// Valid: Casts
static (Label label) => (label.BindingContext as PersonViewModel).Name;
static (Label label) => ((PersonViewModel)label.BindingContext).Name;
// Invalid: Method calls
static (PersonViewModel vm) => vm.GetAddress();
static (PersonViewModel vm) => vm.Address?.ToString();
// Invalid: Complex expressions
static (PersonViewModel vm) => vm.Address?.Street + " " + vm.Address?.City;
static (PersonViewModel vm) => $"Name: {vm.Name}";