列表视图/列表过滤器 Windows Phone 8.1 C#
ListView / List Filter Windows Phone 8.1 C#
我有一个数据列表
public class PopImage
{
public async Task<List<PopImage>> PopDatas()
{
string imgfolder = "PopularImages";
var data = new List<PopImage>();
StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder subfolder = await folder.GetFolderAsync(imgfolder);
var files = await subfolder.GetFilesAsync();
foreach (var items in files)
{
data.Add(new PopImage(imgfolder+"/"+items.DisplayName+ ".jpg", items.DisplayName));
}
return data;
}
public PopImage(string imagePath, string imageName)
{
ImagePath = imagePath;
ImageName = imageName;
}
public string ImagePath { get; set; }
public string ImageName { get; set; }
}
我想添加一个文本框并在文本框文本更改时对其进行过滤,
我需要什么才能应用它?
您需要向 TextBox 添加一个 TextChanged 事件。
首先在你的 XAML 添加这个:
<TextBox Name="tbListFilter" TextChanged="tbListFilter_TextChanged"/>
那么后面的代码是:
private void tbListFilter_TextChanged(object sender, TextChangedEventArgs e)
{
yourFilteredList = yourPopImageList.Where(p => p.ImageName.ToUpper().Contains(tbListFilter.Text.ToUpper())).ToList();
}
基于@WPMed
我尝试从过滤的项目中创建一个新列表
var FilteredList= new List<PopImage>();
foreach (var data in popimagelist)
{
if(data.ImageName.ToUpper().Contains(FilterText.Text.ToUpper()))FilteredList.Add(data);
}
感谢您的帮助
我有一个数据列表
public class PopImage
{
public async Task<List<PopImage>> PopDatas()
{
string imgfolder = "PopularImages";
var data = new List<PopImage>();
StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder subfolder = await folder.GetFolderAsync(imgfolder);
var files = await subfolder.GetFilesAsync();
foreach (var items in files)
{
data.Add(new PopImage(imgfolder+"/"+items.DisplayName+ ".jpg", items.DisplayName));
}
return data;
}
public PopImage(string imagePath, string imageName)
{
ImagePath = imagePath;
ImageName = imageName;
}
public string ImagePath { get; set; }
public string ImageName { get; set; }
}
我想添加一个文本框并在文本框文本更改时对其进行过滤, 我需要什么才能应用它?
您需要向 TextBox 添加一个 TextChanged 事件。 首先在你的 XAML 添加这个:
<TextBox Name="tbListFilter" TextChanged="tbListFilter_TextChanged"/>
那么后面的代码是:
private void tbListFilter_TextChanged(object sender, TextChangedEventArgs e)
{
yourFilteredList = yourPopImageList.Where(p => p.ImageName.ToUpper().Contains(tbListFilter.Text.ToUpper())).ToList();
}
基于@WPMed
我尝试从过滤的项目中创建一个新列表
var FilteredList= new List<PopImage>();
foreach (var data in popimagelist)
{
if(data.ImageName.ToUpper().Contains(FilterText.Text.ToUpper()))FilteredList.Add(data);
}
感谢您的帮助