【发布时间】:2017-09-03 16:35:06
【问题描述】:
我是 xamarin 的新手。我想知道用于以 xamarin 形式绑定数据的绑定和绑定上下文之间的确切区别。
【问题讨论】:
标签: data-binding xamarin.forms
我是 xamarin 的新手。我想知道用于以 xamarin 形式绑定数据的绑定和绑定上下文之间的确切区别。
【问题讨论】:
标签: data-binding xamarin.forms
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# 的信息。
【讨论】: