为Blazor的Telerik UI?下载30天免费试用

值绑定vs数据绑定

这篇文章解释了两者之间的区别价值而且@bind-Value值绑定和数据绑定之间。

本文包含以下部分:

值绑定

在本文档中,我们将把值绑定称为在组件及其父组件之间传递值的过程。值绑定告诉组件从视图模型中获取相应字段的值并使用它。

值绑定有两种形式:

  • 单向绑定-语法类似< ParameterName > = " @someField "例如,值= " @someField "页面= " @someField "

  • 双向绑定-语法类似@bind——< ParameterName > = " @someField "例如,@bind-Value = " @someField "@bind-Page = " @someField "

单向绑定

单向绑定可以如果组件更改了值,则更新视图模型。

在使用单向绑定时,您可以可以使用< ParameterName >改变事件。例如,您可以两者都使用价值而且ValueChanged

要在单向绑定场景中更新视图模型,请处理相应的操作<参数>改变事件。在处理程序中,用新数据更新视图模型。这允许您对新值应用一些同步逻辑,并在未将新值设置为视图模型时有效地取消更新。

如果在表单内部使用单向绑定,则可能会得到类似于未处理的异常呈现组件:Telerik.Blazor.Components.TelerikTextBox需要一个'ValueExpression'的值。.使用双向绑定时就不会发生这种情况。你可以找到更多的细节和解决这个问题的方法需要ValueExpression的值篇文章。

双向绑定

双向绑定更新视图模型字段,如果组件更改了值。

在使用双向绑定时,您可以不能使用< ParameterName >改变事件。如果你使用@bind-Value然后加上ValueChanged,框架将抛出异常。在Blazor中使用双向绑定,事件已经被处理以填充视图模型,因此您不能再次处理它。

数据绑定

在本文档中,我们将把数据绑定称为为组件提供它将使用和显示的数据(模型)集合的过程。

在这种情况下没有双向绑定,数据流是从父组件到子组件的。有时,父组件需要知道子组件中的数据更改。通常的方法是引发父视图模型可以处理的特定事件,并将必要的更改应用到它自己的视图模型。

数据绑定包括以下步骤:

  • 在视图模型中使用所需的模型/原语类型集创建集合。你通常会从特定于应用程序的数据服务中获得它。

  • 指向的数据参数的Telerik组件的集合。

  • 设置其他必要的参数,指导组件如何处理该数据(例如指定ID字段、文本和值字段等)。

MSDN与Telerik文档中的术语

在MSDN文档中@bind@bind-Value语法被称为“数据绑定”,因为它携带一段数据到/从视图模型到输入组件(如简单的<输入/ >或者它的等价形式——the< InputText / >).

在用于Blazor文档的Telerik UI中@bind-Value语法被称为“值绑定”,因为它在视图模型之间携带字段值。

在用于Blazor文档的Telerik UI中,我们将“数据绑定”称为向组件提供模型集合的过程,以便该组件能够使用这些模型。例如,显示它们——网格中的行、调度程序中的约会、下拉列表中的项。

在MSDN文档中,没有涉及到向这样的组件提供数据—它使用简单的HTML元素和@foreach要生成的循环<选项>元素的下拉列表或< tr >网格的元素。

在被认为是组件套件的基本场景的框架中缺乏术语,这导致了我们使用的约定的差异。

在本文中
Baidu
map