使用MVVM进行搜索

时间:2012-09-06 10:53:01

标签: c# windows-phone-7 search mvvm

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

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

  • 在MainPage上,填写文本框,然后按按钮进行搜索
  • 以某种方式转到MainViewModel并使用MainPage的文本框值
  • 调用LoadData()方法

2 个答案:

答案 0 :(得分:2)

视图模型

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

查看代码隐藏

    View.DataContext = viewModel

查看xaml:

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

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

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

答案 1 :(得分:1)

请记住,MVVM是:Model,View&amp;查看模型。

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

  1. 如何将参数从一个视图模型传递到另一个视图模型。这将取决于您的MVVM框架,因此您无法提供具体信息,因为您尚未说明什么框架。
  2. 然后使用参数在模型中使用搜索(在问题中忽略它)。
  3. 我对MVVM系统做的是做标准页面导航并将参数传递给新页面,然后我在OnNavigated方法中抓取它并解析出来并将其传递给视图模型,然后过滤数据具有该值的模型。