Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 7 MVVM Light Windows Phone应用程序中是否有通用的导航约定?_Windows Phone 7_Mvvm Light_Windows Phone 7.1 - Fatal编程技术网

Windows phone 7 MVVM Light Windows Phone应用程序中是否有通用的导航约定?

Windows phone 7 MVVM Light Windows Phone应用程序中是否有通用的导航约定?,windows-phone-7,mvvm-light,windows-phone-7.1,Windows Phone 7,Mvvm Light,Windows Phone 7.1,随着我的应用程序变得越来越大,我发现同一类型的实体越来越多地出现在整个应用程序中,通常出现在列表框中 当有人点击实体时,我想导航到该实体的详细视图 例如,产品:它按类别显示在产品列表中,它显示在搜索结果中,或者它可能显示为保存的收藏夹。在我的例子中,所有这些都来自本地SQLCE存储中的一个表 每次我以某种方式呈现实体,有人可以点击它,我基本上都会剪切相同的代码:订阅列表框上的SelectionChange事件,提取实体,使用MVVM Light消息传递来表示所选实体已更改,然后调用Navigat

随着我的应用程序变得越来越大,我发现同一类型的实体越来越多地出现在整个应用程序中,通常出现在列表框中

当有人点击实体时,我想导航到该实体的详细视图

例如,产品:它按类别显示在产品列表中,它显示在搜索结果中,或者它可能显示为保存的收藏夹。在我的例子中,所有这些都来自本地SQLCE存储中的一个表

每次我以某种方式呈现实体,有人可以点击它,我基本上都会剪切相同的代码:订阅列表框上的SelectionChange事件,提取实体,使用MVVM Light消息传递来表示所选实体已更改,然后调用NavigationService来完成其业务


有人做过类似的工作吗?如果有,你有什么想法?或者更重要的是,如果我忽略了一些MVVM Light toolkit约定,您能为我指出正确的方向吗?

您现在是从代码隐藏还是视图模型调用NavigationService?如果是前者,您可以检查是否从VM触发它。如果将其与EventToCommand行为结合起来,您应该能够在VM中创建一个漂亮、干净的MyEntitySelected命令,该命令将实体作为参数。

我想这里的问题是,如果不每次剪切/粘贴相同的代码,我如何处理这个问题?如果是这种情况,那么可能尝试将实体/列表框打包到XAML usercontrol中!看看这个:

然后,如果表示形式需要不同,您可以看看这个:这个示例在一个列表框中使用不同的样式,但是您可以将其更改为仅在每个不同的页面上应用不同的样式,并在其上使用一个列表框