Как я могу программно нажать AppBarButton?

1

У меня есть этот код:

async private void InformUserOfRenameOption(string platypusName)
{
    CoreWindowDialog cwd = new CoreWindowDialog(String.Format(
        "This platypus has been given the default name {0}. Do you want to change it?", platypusName));
    cwd.Commands.Add(new UICommand { Label = "Yes", Id = 0 });
    cwd.Commands.Add(new UICommand { Label = "No", Id = 1 });
    cwd.Commands.Add(new UICommand { Label = "Cancel", Id = 2 });
    cwd.CancelCommandIndex = 2;
    IUICommand cmd = await cwd.ShowAsync();
    //if (cmd.Id == 0) <= 'Operator '==' cannot be applied to operands of type 'object' and 'int'
    if (Convert.ToInt32(cmd.Id) == 0)
    {
        appbarbtnRenamePlatypus.Tapped();
    }
} 

... но моя попытка программного нажатия AppBarButton не выполняется с ошибкой времени компиляции: "Событие" Windows.UI.Xaml.UIElement.Tapped "может отображаться только в левой части + = или - ="

Итак, как я могу программно нажать кнопку или, более конкретно, получить его Button.Flyout Flyout, чтобы вылететь?

  • 1
    Я считаю, что вы можете использовать Automation Peers . Или вы можете создать пользовательский элемент управления, который выходит из AppBarButton , так как он не sealed .
Теги:
appbar
windows-runtime
winrt-component

1 ответ

2
Лучший ответ

Как правило, вы должны реорганизовать код из обработчика щелчка кнопки AppBar в свой собственный метод, после чего вы можете вызвать его из любого места.

Вы можете также рассмотреть возможность использования ICommand если вы чувствуете себя более предприимчивым - это позволяет вам иметь любое количество элементов интерфейса (например, ButtonBase.Command) или вызывать его непосредственно из кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню