Выполнить событие из кода - PullRequest
2 голосов
/ 13 января 2012

Я пытаюсь повторно использовать код, который я сделал для переключения в моем приложении

Когда переключатель не установлен, он запускает код ниже

private void ToggleSwitch_Unchecked(object sender, RoutedEventArgs e)
{
   //Some code here YAY!
} 

Работает как шарм из XAML.

<toolkit:ToggleSwitch Margin="0,0,12,0" Content="Allow" Checked="ToggleSwitch_Checked" Unchecked="ToggleSwitch_Unchecked" x:Name="allowGpsSwitch" IsChecked="true" />

Теперь я пытаюсь также вызвать этот код из C #. Я попытался несколько способов вызова кода ToggleSwitch_Unchecked без успеха.

В резюме: я хочу вызвать ToggleSwitch_Unchecked из кода для немедленного выполнения. Я знаю, что могу сделать метод для этого отдельно, но я хочу использовать тот же, который я сделал для этого события.

это возможно или мои мысли совершенно не верны?

Ответы [ 3 ]

4 голосов
/ 13 января 2012

Да, я думаю, что ваши мысли ошибочны. Ваша сигнатура метода для обработчика событий содержит аргументы, которые вам не нужны в других контекстах. Почему бы не структурировать следующим образом:

private void ToggleSwitch_Unchecked(object sender, RoutedEventArgs e)
{
   DoSomething()
}

private void DoSomething()
{
   // ...
}

Затем вы можете выполнить DoSomething, когда захотите!

3 голосов
/ 13 января 2012

Если вы не используете (object sender, RoutedEventArgs e) значения аргументов, тогда вам действительно следует создать новый метод из //Some code here YAY! части и вызвать его из ToggleSwitch_Unchecked, а также из любой другой точки, в которой вы хотите его использовать.

1 голос
/ 13 января 2012

Ну, вы должны иметь возможность вызывать его с помощью null и EventArgs.Empty:

ToggleSwitch_Unchecked(null, EventArgs.Empty);

или с null, null

ToggleSwitch_Unchecked(null, null);

, но это зависит от того, нужно ли вам использоватьsender и e.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...