Silverlight SL3导航框架&x2B;MVVM灯

Silverlight SL3导航框架&x2B;MVVM灯,silverlight,silverlight-3.0,mvvm,navigation,mvvm-light,Silverlight,Silverlight 3.0,Mvvm,Navigation,Mvvm Light,感谢您抽出时间阅读我的问题。非常感谢您的指导 我正在LOB应用程序中使用SL3导航框架。我目前使用MVVM Light作为框架指南 我有一个由员工组成的datagrid,当“用户”点击datagrid中的“员工id链接”时,我将用户转移到“编辑页面”。我想将“员工id”作为查询参数转移到“编辑页面” 这里的问题是:我可以访问EditStaffView.xaml.cs中的查询参数——我不想这样做 protected override void OnNavigatedTo(Navigatio

感谢您抽出时间阅读我的问题。非常感谢您的指导

我正在LOB应用程序中使用SL3导航框架。我目前使用MVVM Light作为框架指南

我有一个由员工组成的datagrid,当“用户”点击datagrid中的“员工id链接”时,我将用户转移到“编辑页面”。我想将“员工id”作为查询参数转移到“编辑页面”

这里的问题是:我可以访问EditStaffView.xaml.cs中的查询参数——我不想这样做

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        if (this.NavigationContext.QueryString.ContainsKey("staffcode"))
        {
            string title = this.NavigationContext.QueryString["staffcode"];
        }
    }
我想在viewmodel中检索查询参数,并基于该查询参数执行某些操作。调用构造函数时,我希望“视图”传递staffid,如下所示

    public EditStaffViewModel(int staffId)
    {
        LoadData(staffId);
    }
我正在datagrid动态构建我的超链接按钮,如下所示:

staffListingModel.HyperlinkNavigationUri=string.Format(“{0}{1}”,NavigationUri.DataEntryEditStaff,“?staffcode={”+staffListingModel.staffcode+“}”)

而且XAML看起来

超链接按钮 Content=“{Binding StaffCode,Mode=TwoWay}”NavigateUri=“{Binding HyperlinkNavigationUri}”>HyperlinkButton

你知道怎么做吗

谢谢你的帮助。
穆拉里

我不会同意这个质询。 因为您正在使用MVVM Light Toolkit。看一看Messenger,利用公共用户模式。类似于PRISM Eventaggregator

发送“Staffcode”并订阅需要利用它的每个viewmodel。您还可以发送整个employe对象

Messenger.Default.Send(已选择员工)

Messenger.Default.Subscribe(此); 请参阅此链接了解Messing: 事件聚合器:

在深度链接和导航与mvvm相结合的情况下,您必须考虑不同的问题。ViewModels之间的通信应由Messeng完成。事件聚合器或信使

希望这有助于