zoukankan      html  css  js  c++  java
  • 在WindowsPhone8中生成基于MVVM Light的LongListSelector导航事件

    继续《在WindowsPhone8中生成基于MVVM Light的LongListSelector命令绑定》,在上一例中,获得了LongListSelector的值,下面利用MVVM Light的消息机制处理导航事件。

    1.创建一个类,命名为NavigationTo,可访问性改为public,包含两个属性:

    public class NavigationTo
        {
            public string PageName { get; set; }
            public string PageParameter { get; set; }
        }
    

     属性PageName为即将导航至的页面,属性PageParameter为导航传递的参数

    2.在MainViewModel中修改上一例子中的NavigationTap方法:

    public void NavigationTap(MountainIndex mouIndex)
            {
                var navigationMsg = new NavigationTo() { PageName = "你导航到的页面名字.xaml", PageParameter=mouIndex.Name };
                Messenger.Default.Send<NavigationTo>(navigationMsg);
            }
    

     这里,我们将山峰的名字作为导航传递的参数。

    3.在MainPage.cs中创建消息广播(这不违背mvvm初衷)

    public void ReceiveMessage(NavigationTo action)
            {
                string navigationString = "/Views/"+action.PageName+".xaml";
                navigationString += string.Format("?NavigationParameter={0}", action.PageParameter);
                NavigationService.Navigate(new System.Uri(navigationString, System.UriKind.Relative));
            }
    

     然后在MainPage构造方法中注册这个消息

    public MainPage()
            {
                InitializeComponent();
                Messenger.Default.Register<NavigationTo>(this, (action) => ReceiveMessage(action));
            }
    

     这样,我们的导航就创建完毕,下面我们新建一个测试页面(普通页面,不使用mvvm),命名为ContentPage.xaml,试试是否已可以传递参数:

    xaml里写一个textblock,接受传参,在PageLoad事件中,将文本框内容设为接收参数:

    private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
            {
                string queryS = this.NavigationContext.QueryString["NavigationParameter"];
                tbk_ReceiveParameter.Text = queryS;
            }
    

     结果如下:

    点击阿尼玛卿

    ok,接收到参数。

  • 相关阅读:
    小数据池,深浅拷贝以及集合
    字典
    列表,元组以及range
    整型,布尔值以及字符串详解
    while循环,格式化输出,运算符及编码初识
    Python简介以及入门
    码云以及Git的使用
    JaveScript——简介、语法
    网页练习
    HTML_css样式表 样式属性 格式布局
  • 原文地址:https://www.cnblogs.com/valentineisme/p/3088269.html
Copyright © 2011-2022 走看看