gpt4 book ai didi

silverlight - SL3 Nav 框架 + MVVM 灯

转载 作者:行者123 更新时间:2023-12-03 10:51:13 29 4
gpt4 key购买 nike

感谢您花时间阅读我的问题。非常感谢任何指导。

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

我有一个由员工组成的数据网格,当“用户”单击数据网格中的“员工 ID 链接”时,我将用户转移到“编辑页面”。我想将“员工 ID”作为查询参数传输到“编辑页面”。

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

    protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (this.NavigationContext.QueryString.ContainsKey("staffcode"))
{
string title = this.NavigationContext.QueryString["staffcode"];
}
}

我想在我的 View 模型中检索查询参数,并根据查询参数执行某些操作。当构造函数被调用时,我希望“ View ”传递 Staffid,如下所示
    public EditStaffViewModel(int staffId)
{
LoadData(staffId);
}

我正在数据网格中动态构建我的超链接按钮,如下所示:

staffListingModel.HyperlinkNavigationUri = string.Format("{0}{1}", NavigationUri.DataEntryEditStaff,"?staffcode={"+ staffListingModel.StaffCode + "}");

XAML 看起来

超链接按钮
Content="{Binding StaffCode,Mode=TwoWay}"NavigateUri="{Binding HyperlinkNavigationUri}"> HyperlinkBut​​ton


知道怎么做吗?

谢谢您的帮助。
穆拉里

最佳答案

我不会使用查询字符串。
因为您使用的是 MVVM Light Toolkit。查看 Messenger 并利用公共(public)订阅者模式。类似于 PRISM Eventtaggregator。

发送“Staffcode”并订阅每个需要利用它的 View 模型。您还可以发送整个员工对象。

Messenger.Default.Send(selectedEmployee);

Messenger.Default.Subscribe(this);
引用此链接进行困惑:
http://blog.galasoft.ch/archive/2010/03/16/whatrsquos-new-in-mvvm-light-v3.aspx
事件聚合器:
http://msdn.microsoft.com/en-us/library/cc707867.aspx

如果深度链接和导航与 mvvm 结合使用,您必须考虑不同。 ViewModel 之间的通信应该通过消息传递来完成。事件聚合器或信使。

希望这可以帮助...

关于silverlight - SL3 Nav 框架 + MVVM 灯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2358894/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com