MvvmCross Android Switch复合按钮可绑定性

时间:2013-09-05 21:34:09

标签: user-interface xamarin.android mvvmcross

在一个简单的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查看类型未找到 - 切换。

2 个答案:

答案 0 :(得分:0)

CompoundButtonChecked的{​​{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;
}