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