2013-11-18 6 views
0

У меня MainPaqe.cs (MainPaqe.xaml) и Periodic_Request.cs (Periodic_Request.xaml), кроме того, имеют Periodic_Request.xamlTextBox с именем TxtBlock_numRequest и Combobox с именем CmbBox_lvlPriority с возможными вариантами 3.передачи MVVM между 2 различными страницами

Проблема в том, как получить от пользователя цифры или строки от TextBox и Combobox в MainPaqe.cs. Мне нужно получить всю эту информацию после нажатия button.

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

ответ

3

Вы можете попробовать передавая данные в QueryString? Проверьте this link для образцов

private void button_Click(object sender, RoutedEventArgs e) 
{ 
    string uri = String.Format("/Periodic_Request.xaml?numRequest={0}", TxtBlock_numRequest.Text); 
    NavigationService.Navigate(new Uri(uri, UriKind.Relative)); 
} 
+0

Спасибо вам много @miguelarcilla, я потратил часы, чтобы решить эту проблему – Rocketq

+1

@Rocketq Не беспокойтесь;) GeekChamp не является действительно большой помощью для многих эти маленькие вопросы. Если вы делаете MVVM, вы можете посмотреть на фреймворки, чтобы облегчить вам задачу. (http://mvvmlight.codeplex.com/ - хороший пример) – miguelarcilla

1

Что я обычно делаю, если у меня есть только несколько из этих вещей, которые должны быть переданы на главную страницу будет определить их как статические свойства в App.xaml.cs файл

Тогда вы можете сделать что-то подобное;

MainPage_OnNavigatedTo(object sender, Eventargs args) 
{ 
    if(App.YourProperty != null) 
    { 
     _viewmodel.RefreshValueForFoo(App.YourProperty); 
    } 
} 

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

1

Вы можете либо отправить строку запрос, как Мигел предложил, или имеют статические свойства, но оба они не слишком велики. (почему мне нужно иметь свойство, которое все могут видеть? или почему мне нужно создать запрос?).

Решение при работе с WPF обычно используется при использовании шаблона MVVM и, в свою очередь, с помощью класса Messenger для отправки сообщения. Вы можете отправить любое сообщение, которое хотите, и кто бы ему его прослушал, получит его (как только он зарегистрируется для такого типа сообщений).

Я очень доволен реализацией MVVM-Light.

Вот общий пример того, как использовать мессенджер: http://jesseliberty.com/2011/01/06/windows-phone-from-scratch%E2%80%93mvvm-light-toolkit-soup-to-nuts-3/

Смежные вопросы