我想获取包含搜索文本的项目。 Lisview应该使用movieTitle在列表视图中向我显示包含搜索文本的项目(文本)。 我有这个电网:如何选择包含文本框的项目。从文本框搜索到ListView
<Grid x:Name="GridSearchMovie" Grid.Row="2" Visibility="Hidden" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox x:Name="txtSearchMovie" TextChanged="txtSearch_TextChanged"/>
<ListView x:Name="lvSearchMovie" Grid.Row="1">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding movieTitle}"/>
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Height" Value="50"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
我在文本框中键入一个单词和Lisview显示我其中包含Textbox.Text的项目。下面是搜索代码:
lvSearchMovie.ItemsSource = Movies;
TextBox t = (TextBox)sender;
string Filter = txtSearchMovie.Text;
ICollectionView cv = CollectionViewSource.GetDefaultView(lvMovies.ItemsSource);
cv.Filter = o =>
{
Movie m = o as Movie;
return (m.movieTitle.ToUpper().Contains(Filter.ToUpper()) ||
m.movieDirector.ToUpper().Contains(Filter.ToUpper()) ||
m.movieActor.ToUpper().Contains(Filter.ToUpper()) ||
m.movieGenre.ToUpper().Contains(Filter.ToUpper()) ||
m.movieTime.ToString().ToUpper().Contains(Filter.ToUpper()) ||
m.movieDate.ToString().ToUpper().Contains(Filter.ToUpper()) ||
m.movieStudio.ToUpper().Contains(Filter.ToUpper()) ||
m.movieFSK.ToUpper().Contains(Filter.ToUpper()) ||
m.movieRating.ToUpper().Contains(Filter.ToUpper()) ||
m.movieSeenTo.ToUpper().Contains(Filter.ToUpper()));
};
我想一个文本块添加到ListView项WrapPanel,这显示了包含文字。我如何得到这些包含Textbox.Text的单词?
电影类:
public class Movie
{
public int movieID;
public string moviePicture;
public string movieTitle {get; set;}
public string movieDirector;
public string movieActor;
public string movieGenre;
public string movieTime;
public string movieDate;
public string movieStudio;
public string movieFSK;
public string movieRating;
}
列表电影:
List<Movie> Movies = new List<Movie>();
是什么电影? –
这是一个列表与电影对象 – MMbach
它是一个可观察的集合? –