这个问题源于https://github.com/slodge/MvvmCross/issues/367线程内部的讨论。
如果我们遵循最近使用 MvvmCross 框架设置绑定的示例,那么我们只需使用 Bind()、To() 扩展设置绑定来控制属性(如 UILabel.Text):
this.DelayBind(() => {
var set = this.CreateBindingSet<KittenCollectionCell, Kitten>();
set.Bind(NameLabel).To(kitten => kitten.Name);
set.Bind(PriceLabel).To(kitten => kitten.Price);
set.Bind(_loader).To(kitten => kitten.ImageUrl);
set.Apply();
});
但是,如果我想根据 DataContext 中的一些值调整我的 UI 状态怎么办。例如,我想显示/隐藏一些按钮和标签并调整一些约束值。
if (((UserInfo)DataContext).IsAdmin)
{
SaveButton.Hidden = false;
SecurityLabelConstraint.Constant = 50;
/* etc */
}
如何监听 DataContext 更改事件?这里推荐的方法是什么?
谢谢。