C# wp7应用程序中的应用程序内搜索

C# wp7应用程序中的应用程序内搜索,c#,silverlight,windows-phone-7,C#,Silverlight,Windows Phone 7,我有一个列表框,其中有许多项。我正在尝试创建一个搜索栏,以便用户可以键入他正在查找的内容,而我的列表框仅显示与用户在文本框中键入的内容相关的项目。我是wp7的新手,首先您应该使用MVVM进行适当的Layout更新。然后使用附加属性并将其绑定到TextBox。更新属性时-引发另一个属性更改事件以更新ListBox(FirePropertyChanged(“傻瓜”);,在代码段中)。 在视图模型中: public string SearchCriteria { get {

我有一个列表框,其中有许多项。我正在尝试创建一个搜索栏,以便用户可以键入他正在查找的内容,而我的列表框仅显示与用户在文本框中键入的内容相关的项目。我是wp7的新手,首先您应该使用
MVVM
进行适当的
Layout
更新。然后使用附加属性并将其绑定到
TextBox
。更新属性时-引发另一个属性更改事件以更新
ListBox
FirePropertyChanged(“傻瓜”);
,在代码段中)。

视图模型中

public string SearchCriteria
{
     get
     {
         return searchCriteria;
     }
     set
     {   
         serchCriteria = value;
         RaisePropertyChanged("SearchCriteria");
         RaisePropertyChanged("FooList");
     }
}
private List<Foo> fooList;

public List<Foo> FooList
{
    get 
    {
       return fooList.Where(x => x.Name.Contains(searchCriteria)); 
    }
}

一些帮助链接有助于更好地理解MVVM模式:


谢谢您的回复。但是很抱歉,我不理解texbox的绑定,甚至属性也发生了变化。你能帮忙吗?非常感谢。这篇文章帮了我的忙。正在尝试搜索功能@用户1538895如果这解决了您的问题,您可以接受答案,如果没有-请更准确地描述问题,我们将处理它。非常感谢。问题解决了。我甚至浏览了MVVM的文章。我想给你的答案打分,但不能,因为我的声誉不到15。我是stackoverflow的新手:(@user1538895)您可以接受答案而无需更新。只需在投票下按复选标记。接受答案也会提高您的投票率。
public string SearchCriteria
{
     get
     {
         return searchCriteria;
     }
     set
     {   
         serchCriteria = value;
         RaisePropertyChanged("SearchCriteria");
         RaisePropertyChanged("FooList");
     }
}
private List<Foo> fooList;

public List<Foo> FooList
{
    get 
    {
       return fooList.Where(x => x.Name.Contains(searchCriteria)); 
    }
}
<TextBox x:Name="searchText" Text={Binding SearchCriteria, Mode=TwoWay} />
<ListBox x:Name="elementsList" ItemsSource={Binding FooList, Mode=TwoWay}>
  <ListBox.ItemTemplate>
   ...
  </ListBox.ItemTemplate>
</ListBox>