在xamarin表单中“绑定”和“绑定上下文”之间有什么不同?

时间:2017-09-03 16:35:07

标签: data-binding xamarin.forms

我是xamarin的新手。我想知道用于绑定xamarin表单数据的绑定和绑定上下文之间的确切差异。

1 个答案:

答案 0 :(得分:5)

BindingBindingObject是Xamarin Forms框架附带的数据绑定过程的一部分。

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

enter image description here

您使用Binding定义目标UI控件与其对应的视图模型之间的连接作为源,这是通过BindingContext属性提供的。您可以通过指定Path属性(以及其他参数,如Converter,StringFormat等)来完成此操作。

例如,在上图中提到的这种情况下,您可以使用Binding作为来源定义Entry.Text以在ViewModel.MyPropertyBindingContext之间建立连接(反过来是ViewModel)。

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

例如:

<Switch IsToggled="{Binding IsEnabled}" />

将在SwitchIsToggledBindingContext之间建立绑定关联。IsEnabled

同样,

<Switch IsToggled="{Binding IsEnabled, Source={x:Reference siblingControl}}" />

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

这个article是学习Xamarin形式绑定的一个很好的起点。另一个好的资源是官方文档herehere。另外,建议您阅读有关如何define bindings using markup-extensions in XAMLextension methods in C#

的内容