qwe*_*man 3 xamarin.ios xamarin.android mvvmcross xamarin
我不明白DelayBind函数的用例是什么.我可以简单地使用
var set = this.CreateBindingSet<Activity, ViewModel();
Run Code Online (Sandbox Code Playgroud)
但为什么以及何时应该使用
this.DelayBind(() => { var set = this.CreateBindingSet<Activity, ViewModel() }
Run Code Online (Sandbox Code Playgroud)
?
DelayBind当您希望每次DataContext更改时都应用绑定时使用,如您在此处所见.主要用途是绑定列表项,例如a,MvxTableViewCell因为它知道何时应该应用它的绑定并"刷新",例如:
public partial class MonkeyCell : MvxTableViewCell
{
public static readonly NSString Key = new NSString("MonkeyCell");
public static readonly UINib Nib;
static MonkeyCell()
{
Nib = UINib.FromName("MonkeyCell", NSBundle.MainBundle);
}
protected MonkeyCell(IntPtr handle) : base(handle)
{
var imageViewLoader = new MvxImageViewLoader(() => monkeyImage);
// Note: this .ctor should not contain any initialization logic.
this.DelayBind(() =>
{
var set = this.CreateBindingSet<MonkeyCell, Monkey>();
set.Bind(imageViewLoader).To(m => m.Image);
set.Bind(nameLabel).To(m => m.Name);
set.Bind(originLabel).To(m => m.Location);
set.Bind(descriptionLabel).To(m => m.Details);
set.Apply();
});
}
}
Run Code Online (Sandbox Code Playgroud)
源代码和完整示例:使用iOS和MvvmCross绑定列表
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |