如何使用布尔值组合来设置MvxBind
按钮上的enabled
属性?MVVMCross MvxBind,将多个值绑定到一个属性
例如:
使用一个布尔值,则与实现绑定:
<Button
android:text="Next"
local:MvxBind="Enabled IHaveDoneEverything"/>
但我怎么实现这个使用多个布尔值?
事情我已经试过了没有工作:
- 在axml使用OR语句。
local:MvxBind="Enabled (IHaveDoneThis | IHaveDoneThat)"
在我的ViewModel中使用额外的属性。这不起作用,因为该属性未被设置,因此在视图中未被更新。
public bool IHaveDoneAtleastSomething { get { return (IHaveDoneThis | IHaveDoneThat); } }
使用自定义值转换器。
local:MvxBind="Enabled [IHaveDoneThis , IHaveDoneThat], Converter=MultipleBooleansToOneBooleanUsingORValueConverter"/>
您是否尝试过的逻辑,而不是按位OR?在https://github.com/MvvmCross中查看http://stackoverflow.com/questions/3154132/what-is-the-difference-between-logical-and-conditional-and-or-in-c和解析器中的答案/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross.Binding/Parse/Binding/Tibet/MvxTibetBindingParser.cs#L120 - 另外,我认为你应该可以使用'或(Expr1,Expr2)' – Stuart