Window Phone 7 C # передает параметры в обработчик маршрута - PullRequest
0 голосов
/ 07 июня 2011

Я пытаюсь передать параметры в функцию, которая используется в RoutedEventHandler

Button start = new Button();
start.Click += new RoutedEventHandler(playSelectedAlarm_Click);

private void playSelectedAlarm_Click(object sender, EventArgs e)
{
    NavigationService.Navigate(new Uri("/AlarmPicker.xaml", UriKind.Relative));
}

как мне это сделать?Или есть лучший способ?

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Вы можете добавить свои параметры в свойство Button Tag .Затем извлеките их в свой обработчик событий:

Button start = new Button();
start.Tag = new string[] { "param1", "param2" };
start.Click += new RoutedEventHandler(playSelectedAlarm_Click);

private void playSelectedAlarm_Click(object sender, EventArgs e)
{        
    //extract the parameters and cast to a `string[]`
    var myParameters = (string[])((Button)sender).Tag;
    string p1 = myParameters[0]; //value is "param1"
    string p2 = myParameters[1]; //value is "param2"


    NavigationService.Navigate(new Uri("/AlarmPicker.xaml", UriKind.Relative));
}

Свойство Tag ожидает тип object, поэтому вы можете ввести массив параметров, коллекцию, строку и т. Д.

0 голосов
/ 07 июня 2011

Измените:

NavigationService.Navigate(new Uri("/AlarmPicker.xaml", UriKind.Relative));

на

var uri = "/AlarmPicker.xaml?idx=" + url + "&title=" + title);
NavigationService.Navigate(new Uri(uri, UriKind.Relative));

После этого в вашем AlarmPicker.xaml.cs добавьте:

out string m_Link = string.empty;
out string m_Title = string.empty;
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

    NavigationContext.QueryString.TryGetValue("idx", out m_Link);
    NavigationContext.QueryString.TryGetValue("title", out m_Title);

    Console.Writeline("IDX: " + m_link);
    Console.Writeline("TITLE: " + m_Title);
}

Это называется при загрузке AlarmPicker.xaml !
Используется для получения переданных значений, например строки запроса.

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

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