BindableObjectExtensions.SetBinding Yöntem

Tanım

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

targetProperty
BindableProperty

Bağlamanın ayarlanacağı BindableProperty.

path
String

String Bağlanacak özellik yolunu gösteren bir.

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

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}";

Şunlara uygulanır