xamarin表单中的“绑定”和“绑定上下文”有什么不同?
答
Binding
和BindingObject
是Xamarin Forms框架附带的数据绑定过程的一部分。
数据绑定是在目标(通常是控件属性,如Switch
。IsToggled
)和源(通常是包含业务逻辑以及属性更改通知的视图模型)之间建立连接的过程。
可以使用Binding
定义目标UI控制之间的连接和它的相应的视图模型作为源,这是通过BindingContext
属性提供。您可以通过指定Path
属性(以及其他参数,如Converter,StringFormat等)来执行此操作。
例如,在如在上述的图像称为这种情况下,可以定义一个Binding
来建立使用BindingContext
作为源(其又是ViewModel
)Entry.Text
和ViewModel.MyProperty
之间的连接。
BindingContext
始终被视为默认源这样的绑定,除非你明确地指定一个备用源像另一个控制,静态资源等
例如:
<Switch IsToggled="{Binding IsEnabled}" />
将建立一个绑定连接在Switch
之间。 IsToggled
和BindingContext
。 IsEnabled
。
同样,
<Switch IsToggled="{Binding IsEnabled, Source={x:Reference siblingControl}}" />
将建立Switch
之间的结合连接。 IsToggled
和siblingControl
。 IsEnabled
。您会注意到,BindingContext
不是此绑定连接的一部分。
这article是学习Xamarin格式绑定的好起点。另一个很好的资源是官方文件here和here。另外,会建议你阅读如何define bindings using markup-extensions in XAML或extension methods in C#。