В файле xaml, как я могу использовать обработчик событий из другого файла cs? - PullRequest
2 голосов
/ 10 февраля 2011

Например, у меня есть кнопка с событием click в файле xaml: < Button x: Name = "ButtonFindCoordinate" Content = "Координата карты" Click = "ButtonFindCoordinate_Click" />

Насколько мне известно, этот обработчик события ButtonFindCoordinate_Click должен быть функцией из кода, стоящего за файлом cs. Можно ли как-то ссылаться на обработчик событий из другого файла cs в этом файле xaml (например, эта кнопка из файла aa.xaml, и у меня есть функция обработчика событий, сохраненная в bb.cs)? Как я могу написать этот код?

Спасибо

Вэй

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

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

Например

в A.xaml.cs

private void ButtonFindCoordinate_Click(object sender, EventArgs e) 
{
     string postCode = CoordinateFinder.FindPostCode(txtButtonFind.Text);
}

и B.xaml.cs

private void OtherButton_Click(object sender, EventArgs e)
{
    string postCode = CoordinateFinder.FindPostCode(txtSomeOtherField.Text);
}

, а затем класс CoordinateFinder может быть чем-то вроде.

public class CoordinateFinder 
{
    public static string FindPostCode(string coordinates)
    {
         // shared code here.
    }

}

Причина, по которой я говорю, что лучше практиковатьне «делитесь» обработчиком клика между классами, вы хотите, чтобы ваш код был максимально читабельным и обслуживаемым.

Представьте, что вы вернетесь через несколько месяцев и увидите, что обработчик кликов из класса B вызываетобработчик щелчков из класса A - теперь вы должны прочитать обработчик щелчков A, чтобы узнать, что он делает.

Кроме того, если вы (или кто-то из вашей команды) должны были обновить aa.xaml.cs, они могли бы получить доступполя из aa.xaml, которые сломали бы bb.cs без их ведома.

Надеюсь, это поможет -

0 голосов
/ 10 февраля 2011

Передайте ссылку aa.xaml в bb.cs и используйте ссылку для доступа к событию.

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