0

好吧,我正在构建一个应用程序,它在数据库中搜索给定的查询,然后下载其结果,以在主页的列表框中显示它们。

每个结果都有更多的细节可以去,所以我决定使用的第一件事是某种细节页面。但我不知道如何实现这个过程:

  • 在主页上,填写文本框并按下按钮进行搜索
  • 不知何故转到 MainViewModel 并使用 MainPage 文本框的值调用 LoadData() 方法
4

2 回答 2

2

视图模型

    public class SearchViewModel {
      public ICommand SearchCommand {get;set;}
      public string SearchCriteria {get;set;}
    }

查看代码隐藏

    View.DataContext = viewModel

查看xml:

    <Button Command="{Binding SearchCommand}"/>
    <TextBox Text="{Binding SearchCriteria}"/>

当调用命令时,按搜索条件通知视图过滤数据。

这是 MVVM 模式的描述:http ://en.wikipedia.org/wiki/Model_View_ViewModel

于 2012-09-06T11:19:39.017 回答
1

请记住,MVVM 是:模型、视图和视图模型。

因此,您可以在触发该页面视图模型中的代码的主页(视图)上进行搜索。然后,您在新视图中显示详细信息,因此您真正应该考虑的是:

  1. 如何将参数从一个视图模型传递到另一个视图模型。这将取决于您的 MVVM 框架,因此无法为您提供具体信息,因为您没有说明什么框架。
  2. 然后使用参数在模型中使用搜索(您在问题中忽略它)。

我用我的 MVVM 系统做的是做一个标准的页面导航并将参数传递给新页面,然后我在 OnNavigated 方法中抓取它并将它解析出来并将它传递给视图模型,然后过滤模型中的数据那个值。

于 2012-09-06T11:15:12.827 回答