绑定到MvvmCross中的UIBarButtonItem事件

时间:2013-03-04 11:54:02

标签: ios mvvmcross xamarin.ios

MvvmCross创建从UIBarButtonItemMvxCommand的绑定的正确方法是什么?

这对我不起作用 - >

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();
    this.AddBindings (new Dictionary<object, string> (){
       {MyButton, "{'Clicked':{'Path':'MyCommand'}}"}
    });
}

我在控制台中没有收到任何错误。我可以通过避免绑定来解决问题,但是你知道,如果所有绑定都是最好的。

1 个答案:

答案 0 :(得分:11)

假设在调用AddBindings之前初始化了bar按钮 - MyButton,那么我认为你的代码应该可以工作。

我将会议示例中的WelcomeView中的代码修改为以下内容,它似乎正常工作......

        var s = new UIBarButtonItem()
        {
            Title = "Click me"
        };

        NavigationItem.SetRightBarButtonItem(s, false);

        this.AddBindings(new Dictionary<object, string>()
            {
                { Button1, "TouchUpInside ShowSponsorsCommand" },               
                { Button2, "TouchUpInside ShowExhibitorsCommand" },             
                { Button3, "TouchUpInside ShowMapCommand" },                
                { Button4, "TouchUpInside ShowAboutCommand" },  
            { s, "Clicked ShowMapCommand" },
            });

        //NavigationItem.SetRightBarButtonItem(new UIBarButtonItem("Tweet", UIBarButtonItemStyle.Bordered, (sender, e) => ViewModel.DoShareGeneral()), false);

很抱歉,如果“这对我有效”,则答案对您的机器无效:/

要确保此功能在发布模式下有效,您可能需要在某处添加一些UIBarButtonItem.Clicked代码。

如果你想从绑定中获得更多的跟踪,那么你可以设置一个诊断跟踪级别(但这可能会非常冗长)。

可能值得检查一下你的MyCommand是否被调用但不知何故失败 - 特别是电子邮件,电话,推文等等在模拟器上无法正常工作的事情。