1

在一个简单的 Monodroid/Mvvmcross 项目中,我的开关绑定不会触发,我必须使用解决方法来完成该行为。我从一所大学听说,但无法找到 Monodroid 尚不正确支持开关的确认。因此,我想知道这是否适用于 Mvvmcross 绑定。

MvvmCross 是否无法绑定到 Switch 复合按钮?

代码

设置视图.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 View type not found - Switch.

4

2 回答 2

0

确保在 LinkerPleaseInclude.cs 中添加了 Switch。也许它会在绑定过程中被剥离..

public void Include(Switch cb)
{
  cb.CheckedChange += (sender, args) => cb.Checked = !cb.Checked;
}
于 2014-11-12T14:57:14.670 回答
0

CompoundButtonCheckedwith的绑定CheckedChange是通过https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Droid/Target/MvxCompoundButtonCheckedTargetBinding.cs实现的,这适用于任何继承自的类CompoundButton

如果您发现问题,然后复制它并使用 Xamarin(对于 Xamarin 问题)或 MvvmCross(对于 MvvmCross 问题)记录它 - 但我不确定如果没有重现问题的示例,任何人都能够提供帮助( s)。

于 2013-09-05T21:45:40.233 回答