2012-09-20 8 views
2

Je veux cliquer sur le bouton par programmation en C# xaml. Comme je l'ai trouvé, il n'y a pas de méthode comme PerformClick. Quoi d'autre est l'alternative pour cela.Windows 8 Cliquez sur le bouton par programmation en C# et Xaml

En fait j'ai un ensemble de 10 boutons avec x: nom comme btn1, BTN2, btn3 etc ... J'ai un nombre de 1 à 10 en fonction de ce nombre, je dois cliquer sur ces boutons. Je prévoyais d'obtenir le contrôle en utilisant

ParentControl.FindName('btn' + number) 

et puis déclencher l'événement à partir de cela. Mais puisqu'il n'y a pas de méthode PerformClick dans Windows 8 C#, j'ai besoin d'une alternative pour cela.

RaiseEvent enter image description here

+0

sont des boutons liés aux instances de 'ICommand'? – Dennis

+0

Aucun bouton n'est lié à l'ICommand –

Répondre

6

Voici comment faire ...

Disons que vous avez ce bouton défini dans votre fichier XAML:

<Button Grid.Column="0" Grid.Row="0" x:Name="DefaultSnooze" Content="Default Snooze" Click="SendToast_Click" Height="34" Width="134"/> 

faire ensuite dans votre code derrière où vous voulez que le code de gestionnaire d'événements Click pour être tiré par programme:

ButtonAutomationPeer peer = new ButtonAutomationPeer(DefaultSnooze); 

IInvokeProvider invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider; 
invokeProv.Invoke(); 

Je l'ai testé maintenant et il fonctionne magnifiquement. :)


Source: How to programmatically click a button

-1

Vous devriez pouvoir utiliser:

RaiseEvent(new RoutedEventArgs(Button.ClickEvent, myButton)); 

Dans le code-behind d'une vue XAML.

RaiseEvent est disponible dans toutes les classes dérivées d'UIElement.

+0

J'ai essayé d'utiliser cela mais ce n'est pas une méthode dans UIElement dans un événement raise. S'il vous plaît regardez à l'instantané ci-dessus –

+0

@BalrajSingh Non non, ce n'est pas une méthode statique. Essayez simplement en utilisant "RaiseEvent", il devrait être là. –

+0

J'ai essayé de trouver cet événement. Pouvez-vous s'il vous plaît dites-moi où exactement je peux le trouver. Depuis WinRT framework nouveau pour moi. J'ai essayé mais pas pu trouver. –

Questions connexes