在一个简单的Monodroid / Mvvmcross项目中,我的交换机绑定不会触发,我必须使用解决方法来完成该行为。 我从一所大学那里听说过,但是我无法确定Monodroid是否还没有正确支持开关。因此,我想知道这是否适用于Mvvmcross绑定。
MvvmCross是否无法绑定到Switch复合按钮?
代码
SettingsView.axml
<FrameLayout [...]>
<ScrollView [...]>
<LinearLayout [...]>
<Switch
android:id="@+id/userSettingsView_Button"
local:MvxBind="Checked ButtonChecked" />
</LinearLayout>
</ScrollView>
</FFrameLayout>
SettingsViewModel.cs
public class SettingsViewModel : MvxViewModel {
[...]
public bool ButtonChecked {
get [...] set{[...]; RaisePropertyChanged(() => ButtonChecked);}
}
}
我有一个版本,axml使用遗留Android版本的选中按钮,绑定(/ s / Switch / ToggleButton)工作正常。 这个设置我得到一个MvxBind错误:6.07查看类型未找到 - 切换。
答案 0 :(得分:0)
CompoundButton
与Checked
的{{1}}绑定通过https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Droid/Target/MvxCompoundButtonCheckedTargetBinding.cs实施,适用于从CheckedChange
继承的任何类
如果您发现了问题,那么将其复制并使用Xamarin(用于Xamarin问题)或MvvmCross(用于MvvmCross问题)进行记录 - 但我不确定任何人都可以在没有再现样本的情况下提供帮助问题。
答案 1 :(得分:0)
确保在LinkerPleaseInclude.cs中添加了Switch。 也许它会在绑定期间被删除..
public void Include(Switch cb)
{
cb.CheckedChange += (sender, args) => cb.Checked = !cb.Checked;
}