【问题标题】:Unexpected behavior caused by the MvvmCross bindings.MvvmCross 绑定导致的意外行为。
【发布时间】:2013-08-03 01:32:34
【问题描述】:

这篇文章是基于我之前在 stackoverflow 上发布的一个问题。我找到了我的问题的解决方案,但我发布了这个问题,因为我怀疑这是 MvvmCross 平台中的一个错误。可以在以下位置找到问题:Custom ToggleButton in 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 事件: 本地:MvxBind="单击 ClickCommand"。如果再次运行该解决方案,则不会执行 OnClick(View v)(不会命中上述断点或跟踪语句)。这是使用 MvvmCross 时的预期行为吗?任何解释将不胜感激。

乌罗斯。

【问题讨论】:

    标签: android binding mvvmcross


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多