2013-04-08 1 views

ответ

1

Я полагаю, вы используете MVVM Light для Windows Phone. В этом случае вы должны поймать событие на своей странице, а затем запустить команду на ViewModel.

Пример:

код-за страницы

private void Listbox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    ViewModelClass vm = this.DataContext as ViewMoedlClass; 
    if (vm != null) 
    { 
     vm.RefreshCommand.Execute(); 
    } 
} 

ViewModel

class ViewModelClass 
{ 
    public ViewModelClass 
    { 
     this.RefreshCommand = new RelayCommand(() => 
     { 
      NavigationService.Navigate(new Uri(NavigationService.Source + "?Refresh=true", UriKind.Relative)); 
     } 
    } 

    public RelayCommand RefreshCommand { get; set;} 

} 

Xaml

<ListBox SelectionChanged="Listbox_SelectionChanged" /> 

Теоретически вам не обязательно делать это в коде, и вы привязываете свою команду из ViewModel непосредственно к событию SelectionChanged, но это невозможно (прямо) в Windows Phone. Если вы хотите пройти этот маршрут, вы можете взглянуть на EventToCommand. Эта страница более подробно описывает шаги: http://www.geekchamp.com/articles/how-to-bind-a-windows-phone-control-event-to-a-command-using-mvvm-light

+0

Действительно благодарю вас за хороший ответ, но вы знаете способ, не используя MVVM? Благодарим вас за терпение (я ноб) – Oxenarf

+0

В этом случае вы можете сделать это немедленно в обработчике событий: NavigationService.Navigate (новый Uri (NavigationService.Source + "? Refresh = true", UriKind.Relative)); Просто оставьте класс ViewModel и поместите код из команды непосредственно внутри обработчика. Что вы подразумеваете под «Обновление текущей страницы»? – Kenneth

+0

Для обновления я имею в виду именно этот NavigationService.Navigate (новый Uri (NavigationService.Source + "Refresh = true", UriKind.Relative)), , но когда я открываю страницу с помощью LispPicker, у меня есть ошибка System.NullReferenceException это код частной недействительным lpkVoti_SelectionChanged (объект отправителя, SelectionChangedEventArgs е) { NavigationService.Navigate ("? Refresh = истина" новый Uri (NavigationService.Source +, UriKind.Relative)); } – Oxenarf

-1

установить AutoPostBack к истинному, образец:

<asp:DropDownList OnSelectedIndexChanged="dropDown_indexChange" ID="DropDownList1" runat="server" AutoPostBack="True"> 
+0

Вопрос не в asp.net, а о windows phone/xaml – Kenneth