Mvvmcross通过自动布局绑定到可见性并完全隐藏视图 [英] Mvvmcross bind to Visibility with autolayout and fully hide view

查看:68
本文介绍了Mvvmcross通过自动布局绑定到可见性并完全隐藏视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当前绑定到可见性"设置为Hidden = true.您将如何创建一个通用的可见性绑定,该绑定也将更改约束:将视图高度设置为0?

Currently binding to "Visibility" sets Hidden=true. How would you create a generic Visibility binding which also changes a constraint: sets the view height to 0 ?

推荐答案

有关创建绑定的教程,请参见 http://mvvmcross.blogspot.com/

For a tutorial on creating bindings, see the N=28 video on http://mvvmcross.blogspot.com/

要替换现有的可见性绑定,只需基于

To replace the existing visibility binding, simply create your own class based on https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross.Binding.Touch/Target/MvxUIViewVisibleTargetBinding.cs

public class MyUIViewVisibleTargetBinding : MvxBaseUIViewVisibleTargetBinding
{
    public MyUIViewVisibleTargetBinding(UIView target)
        : base(target)
    {
    }

    protected override void SetValueImpl(object target, object value)
    {
        var view = View;
        if (view == null)
            return;

        var visible = value.ConvertToBoolean();
        // your code here
        // - in place of or in addition to:
        // view.Hidden = !visible;
    }
}

并使用以下命令将其注册为Setup中的最后一步:

And register this as the last step in Setup using:

protected override void InitializeLastChance()
{
     base.InitializeLastChance();

     var registry = Mvx.Resolve<IMvxTargetBindingFactoryRegistry>();
     registry.RegisterCustomBindingFactory<UIView>("Visible",
                                                    view =>
                                                    new MyUIViewVisibleTargetBinding(view));

}

有关替换现有绑定的更多信息,请参见 MVVMCross将十进制绑定到UITextField删除小数点

For more on replacing existing bindings, see MVVMCross Binding decimal to UITextField removes decimal point

请注意,如果要替换所有Visible绑定,则可能希望替换所有VisibleVisibilityHidden-请参见

Note that if you want to replace all Visible bindings, then you might want to replace all of Visible, Visibility and Hidden - see registrations in https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross.Binding.Touch/MvxTouchBindingBuilder.cs#L42

这篇关于Mvvmcross通过自动布局绑定到可见性并完全隐藏视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆