我想知道如何刷新当前页面
heNavigationService.Navigate(new Uri(NavigationService.Source + "?Refresh=true", UriKind.Relative));
在我在 ListPicker 中选择一个元素之后。
我想知道如何刷新当前页面
heNavigationService.Navigate(new Uri(NavigationService.Source + "?Refresh=true", UriKind.Relative));
在我在 ListPicker 中选择一个元素之后。
我想您正在为 Windows Phone 使用 MVVM Light。在这种情况下,您应该在页面中捕获事件,然后在 ViewModel 上触发命令。
例子:
页面的代码隐藏
private void Listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ViewModelClass vm = this.DataContext as ViewMoedlClass;
if (vm != null)
{
vm.RefreshCommand.Execute();
}
}
视图模型
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
将您的自动回发设置为 true,示例:
<asp:DropDownList OnSelectedIndexChanged="dropDown_indexChange" ID="DropDownList1" runat="server" AutoPostBack="True">