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

问题描述:

我是新来的xamarin。我想知道用于绑定xamarin表单中的数据的绑定和绑定上下文之间的确切区别。xamarin表单中的“绑定”和“绑定上下文”有什么不同?

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

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

enter image description here

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

例如,在如在上述的图像称为这种情况下,可以定义一个Binding来建立使用BindingContext作为源(其又是ViewModelEntry.TextViewModel.MyProperty之间的连接。

BindingContext始终被视为默认源这样的绑定,除非你明确地指定一个备用源像另一个控制,静态资源等

例如:

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

将建立一个绑定连接在Switch之间。 IsToggledBindingContextIsEnabled

同样,

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

将建立Switch之间的结合连接。 IsToggledsiblingControlIsEnabled。您会注意到,BindingContext不是此绑定连接的一部分。

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