0

这篇文章是基于我在 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 时的预期行为吗?任何解释将不胜感激。

乌鲁斯。

4

1 回答 1

0

这只是普通的 Java 观察者/监听者模式,它与 MonoDroid 交互。

一次只能调用一件事SetOnClickListenerSetOnClickListenerC# click 事件作为其实现的一部分调用,它取代了您之前的注册。

于 2013-08-06T00:35:40.027 回答