У меня есть этот код:
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, чтобы вылететь?
Как правило, вы должны реорганизовать код из обработчика щелчка кнопки AppBar в свой собственный метод, после чего вы можете вызвать его из любого места.
Вы можете также рассмотреть возможность использования ICommand
если вы чувствуете себя более предприимчивым - это позволяет вам иметь любое количество элементов интерфейса (например, ButtonBase.Command
) или вызывать его непосредственно из кода.
AppBarButton
, так как он неsealed
.