这篇文章基于我在stackoverflow上发布的上一个问题。我找到了我的问题的解决方案,但我发布这个问题因为我怀疑这是MvvmCross平台中的一个错误。问题可以在Custom ToggleButton in Xamarin.Android找到。要复制该行为,请执行以下步骤:
扩展ToggleButton(我发现这个问题有切换按钮但我猜它与其他UI元素相同)并为click事件创建了监听器:
public sealed class MyToggleButton : ToggleButton, View.IOnClickListener
{
public MyToggleButton(Context context, IAttributeSet attrs)
: base(context, attrs)
{
SetOnClickListener(this);
}
public void OnClick(View v)
{
}
}
添加MyToggleButton以在.axml文件中查看但不将任何内容绑定到MyToggleButton的Click事件,而不是将断点(或Trace语句)放置到OnClick(View v)方法。当你运行程序时,你应该点击断点(或者在visual studio的输出窗口中看到跟踪)。停止执行并修改.axml文件以将绑定添加到Click事件: local:MvxBind =“Click ClickCommand”。如果再次运行解决方案,则不会执行OnClick(View v)(上面提到的断点或跟踪状态将不会被命中)。使用MvvmCross时是否有预期的行为?任何解释将不胜感激。
乌罗什。
答案 0 :(得分:0)
这只是普通的Java观察者/监听器模式,它与MonoDroid的交互。
一次只能调用SetOnClickListener
一件事。 C#click事件调用SetOnClickListener
作为其实现的一部分,它将取代您之前的注册。