这篇文章是基于我在 stackoverflow 上发布的一个问题。我找到了我的问题的解决方案,但我发布了这个问题,因为我怀疑这是 MvvmCross 平台中的一个错误。可以在以下位置找到问题:Xamarin.Android 中的自定义切换按钮。要复制行为,请按照以下步骤操作:
扩展 ToggleButton(我发现此问题与切换按钮有关,但我猜它与其他 UI 元素相同)并为单击事件创建侦听器:
public sealed class MyToggleButton : ToggleButton, View.IOnClickListener
{
public MyToggleButton(Context context, IAttributeSet attrs)
: base(context, attrs)
{
SetOnClickListener(this);
}
public void OnClick(View v)
{
}
}
在 .axml 文件中添加 MyToggleButton 以查看,但不要将任何内容绑定到 MyToggleButton 的 Click 事件,而是将断点(或 Trace 语句)放置到 OnClick(View v) 方法。当您运行程序时,您应该点击断点(或在 Visual Studio 的输出窗口中查看跟踪)。停止执行并修改 .axml 文件以将绑定添加到 Click 事件:local:MvxBind="Click单击命令”。如果再次运行该解决方案,则不会执行 OnClick(View v)(不会命中上述断点或跟踪语句)。这是使用 MvvmCross 时的预期行为吗?任何解释将不胜感激。
乌鲁斯。