xamarin - 我应该在创建 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?
解决方案
类似你可以自己选择。
SetBinding
定义的方法BindableObject
有一个类型参数,BindingBase
Binding 类从该参数派生。
下面的例子展示了如何通过BindingBase
.
var label = new Label ();
label.SetBinding (Label.TextProperty, new Binding ("Name"));
该类还定义了其他 SetBinding 方法BindableObjectExtensions
。它创建并将绑定应用于属性。
下面的例子展示了如何使用扩展方法来设置绑定。这是SetBinding
这个类的一个更简单的扩展方法。
var label = new Label ();
label.SetBinding (Label.TextProperty, "Name");
推荐阅读
- php - JSON 代码到数组 - 引号和双引号
- c# - Unity Photon - 如何同步玩家统计/信息
- javascript - javascript从html字符串生成pdf
- android - 在 EditText 中禁用字典建议、退格和删除单词或句子
- kubernetes - Nginx Ingress 服务失败
- sql-server - 由于错误 0x80070057“参数不正确。” SSIS 作业无法运行
- apache-spark - “避免每个集群有多个 Kudu 客户端”是什么意思?
- jquery - 使用 jQuery 会话在页面更改时保持购物车总数
- python - Python PIL 完全删除每个 alpha 通道
- flutter - 间接导出的类不可见