1
我的列表查看项不会出现。其实我试图收集文档库的文件名到我的列表视图。UWP-List查看内容空
这里是XAML中:
<ListView x:Name="Mylist" SelectionMode="Single" ShowsScrollingPlaceholders="True"
Grid.ColumnSpan="2" ItemsSource="{x:Bind data}" >
<ListView.ItemTemplate>
<DataTemplate x:DataType="dat:Class1">
<StackPanel>
<TextBlock Text="{Binding Key}" Style="{StaticResource TitleTextBlockStyle}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
Class1的文件:
namespace App1{
public class Class1:List<object>
{
public Class1()
{
}
public string Items { get; set; }
public object Key { get; set; }
}}
Mainpagexaml.cs
public ObservableCollection<Class1> _data;
public ObservableCollection<Class1> data { get { return _data; } }
public MainPage()
{
this.InitializeComponent();
}
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
_data = await Data.ItemsGrouped();
}
Data.cs
public async static Task<ObservableCollection<Class1>> generatename()
{
ObservableCollection<Class1> newdata = new ObservableCollection<Class1>();
//var myfiles = await getfiles();
StorageFolder folder = await KnownFolders.GetFolderForUserAsync(null, KnownFolderId.DocumentsLibrary);
List<string> filetypefilter = new List<string>();
filetypefilter.Add(".mp3");
QueryOptions query = new QueryOptions(CommonFileQuery.OrderBySearchRank, filetypefilter);
StorageFileQueryResult queryresult = folder.CreateFileQueryWithOptions(query);
IReadOnlyList<StorageFile> files = await queryresult.GetFilesAsync();
foreach (var file in files)
{
newdata.Add(new Class1() { Items = file.Name });
var f = file.Name;
}
return newdata;
}
public async static Task<ObservableCollection<Class1>> ItemsGrouped()
{
ObservableCollection<Class1> cgroup = new ObservableCollection<Class1>();
var x = await generatename();
var query = from item in x
group item by item.Items[0] into g
orderby g.Key
select new { GroupName = g.Key, Items = g };
foreach (var item in query)
{
Class1 c1 = new Class1();
c1.Key = item.GroupName;
foreach (var item2 in item.Items)
{
c1.Add(item2);
c1.Items = item2.Items;
}
cgroup.Add(c1);
}
return cgroup;
}
我发现文件名是从data.cs文件中读取的,但在UI中没有任何结果。
没有AddRange属性的可观察集合... –
所以做一个foreach –
这工作..现在,你能帮我把我的项目分组到一个CollectionViewSource中,以便我可以将它们分组在字母..我试过this:MyView.Source = await getItems();在inNavigatedTo方法中,其中getItems()包含foreach方法。 –