xamarin形式的“绑定”和“绑定上下文”之间有什么区别?

Ann*_*nne 1 data-binding xamarin.forms

我是xamarin的新手。我想知道绑定和绑定上下文之间的确切区别,绑定上下文用于绑定xamarin形式的数据。

Sha*_*raj 5

Binding并且BindingObject是Xamarin Forms框架随附的数据绑定过程的一部分。

数据绑定是在目标(通常是控件属性,如SwitchIsToggled)和源(通常是将业务逻辑与属性更改通知结合在一起的视图模型)之间建立连接的过程。

在此处输入图片说明

您可以Binding通过BindingContext属性将目标UI控件与其对应的视图模型之间的连接定义为源。您可以通过指定Path属性(以及其他参数,如Converter,StringFormat等)来实现。

例如,如上图所示,在这种情况下,您可以定义一个,Binding以在源之间(Entry.TextViewModel.MyProperty使用)建立连接(并使用)。BindingContextViewModel

BindingContext 除非您明确指定替代源,例如另一个控件,静态资源等,否则始终被视为此类绑定的默认源。

例如:

<Switch IsToggled="{Binding IsEnabled}" />
Run Code Online (Sandbox Code Playgroud)

将在之间建立绑定连接SwitchIsToggledBindingContextIsEnabled

同样,

<Switch IsToggled="{Binding IsEnabled, Source={x:Reference siblingControl}}" />
Run Code Online (Sandbox Code Playgroud)

将在之间建立绑定连接SwitchIsToggledsiblingControlIsEnabled。您会注意到,BindingContext这不是此绑定连接的一部分。

文章是一个很好的起点,以学习Xamarin形式结合。另一个很好的资源是这里这里的官方文档。此外,建议您阅读有关如何使用XAML中的标记扩展C#中的扩展方法定义绑定的信息