首页 > 解决方案 > 我应该在创建 Xamarin 对象的类的签名中使用 BindingBase 而不是 Binding 吗?

问题描述

我正在从我的 Xamarin 代码中创建一个新对象,如下所示:

new ArrowGrid("Group Name", new Binding(nameof(_vm.Name))));

并像这样使用它:

public ArrowGrid(string text1, Binding text2, string tapCommandParam) : this()
{
   this.Text1 = text1;
   this.SetBinding(ArrowGrid.Text2Property, text2);
}

ReSharper 建议我更改为 BindingBase:

public ArrowGrid(string text1, BindingBase text2) : this()

有人可以向我解释 Binding 和 BindingBase 之间的区别。是否有任何理由更改为 BindingBase?

标签: xamarinxamarin.forms

解决方案


类似你可以自己选择。

SetBinding定义的方法BindableObject有一个类型参数,BindingBaseBinding 类从该参数派生。

下面的例子展示了如何通过BindingBase.

var label = new Label ();
label.SetBinding (Label.TextProperty, new Binding ("Name"));

该类还定义了其他 SetBinding 方法BindableObjectExtensions。它创建并将绑定应用于属性。

下面的例子展示了如何使用扩展方法来设置绑定。这是SetBinding这个类的一个更简单的扩展方法。

var label = new Label ();
label.SetBinding (Label.TextProperty, "Name");

推荐阅读