Предполагая, что кнопка бара - MyButton - инициализирована до вызова AddBindings, тогда я думаю, что ваш код должен работать.
Я изменил код в 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);
К сожалению, если это «работает для меня» ответ не поможет на вашей машине:/
Чтобы гарантировать, что это работает в режиме Release, вам может потребоваться добавить код UIBarButtonItem.Clicked
.
Если вы хотите больше трассировки из привязок, тогда вы можете установить уровень диагностической трассировки (но это может быть довольно многословным).
Возможно, стоит проверить, вызван ли ваш MyCommand
, но как-то не удается - это особенно может случиться для таких вещей, как электронная почта, телефонные звонки, твиты и т. Д., Которые не всегда работают на симуляторе.
Спасибо @Stuart. это работает и для меня. Часть 'canExecute' моего' MvxCommand' возвращала false:/ –
Одна вещь, которую Mvx не делает прямо сейчас, - это обработать canExecute для включения привязки на любом элементе управления - это можно обойти, используя отдельные свойства с включенными/отключенными свойствами, но isn ' t совершенный. – Stuart