public static UIBarButtonItem CreateButtonForToolbar(this ToolBarButton toolBarButton)
        {
            if (toolBarButton.ImageSource == null)
                return toolBarButton.CreateButton();

            var uiButton = new UIButton(UIButtonType.Custom);
            SetImage(uiButton, toolBarButton.ImageSource);
            uiButton.Frame = new CGRect (0, 0, 24, 24);

            var barButtonItem = new UIBarButtonItem (uiButton);

            uiButton.TouchUpInside += (sender, e) => HandleButtonClick(toolBarButton);

            WireUpEnabledToCanExecute(toolBarButton, barButtonItem);

            toolBarButton.PropertyChanged += (s, e) =>
            {
                if (e.PropertyNameMatches(() => toolBarButton.Command))
                    barButtonItem.InvokeOnMainThread(() => WireUpEnabledToCanExecute(toolBarButton, barButtonItem));
            };

            return barButtonItem;
        }