我是xamarin的新手。我想知道用于绑定xamarin表单数据的绑定和绑定上下文之间的确切差异。
答案 0 :(得分:5)
Binding
和BindingObject
是Xamarin Forms框架附带的数据绑定过程的一部分。
数据绑定是在目标(通常是控件属性,如Switch
。IsToggled
)和源(通常是包含业务逻辑以及属性更改通知的视图模型)之间建立连接的过程。 。
您使用Binding
定义目标UI控件与其对应的视图模型之间的连接作为源,这是通过BindingContext
属性提供的。您可以通过指定Path
属性(以及其他参数,如Converter,StringFormat等)来完成此操作。
例如,在上图中提到的这种情况下,您可以使用Binding
作为来源定义Entry.Text
以在ViewModel.MyProperty
和BindingContext
之间建立连接(反过来是ViewModel
)。
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#。
的内容