我有一个包含许多项目的列表框。我正在尝试创建一个搜索栏,以便用户可以输入他正在寻找的内容,而我的列表框仅显示与用户在文本框中输入的内容相关的那些项目。我是 wp7 的新手
问问题
113 次
1 回答
0
首先,您应该使用MVVM
适当的Layout
更新。然后使用附加属性并将其绑定到TextBox
. 更新属性时 - 引发另一个属性更改事件以更新ListBox
(FirePropertyChanged("FooList");
在片段中)。
public class Foo
{
public string Name { get; set; }
}
在ViewModel
:
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));
}
}
在Xaml
:
<TextBox x:Name="searchText" Text={Binding SearchCriteria, Mode=TwoWay} />
<ListBox x:Name="elementsList" ItemsSource={Binding FooList, Mode=TwoWay}>
<ListBox.ItemTemplate>
...
</ListBox.ItemTemplate>
</ListBox>
一些帮助链接可以更好地理解
MVVM
模式:
于 2012-07-22T09:20:26.303 回答