Мой список Элементы списка не отображаются. Фактически я пытаюсь собрать имена файлов библиотеки документов в свой список.UWP-List View Content Empty
Вот 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, но никакого результата в пользовательском интерфейсе нет.
Не существует свойства AddRange для наблюдаемой коллекции ... –
Итак, сделайте foreach –
Это сработало. Теперь вы можете помочь мне сгруппировать мои объекты в CollectionViewSource, чтобы я мог группировать их по алфавиту. Я пробовал this: MyView.Source = ожидание getItems(); -внутри метода onNavigatedTo, где getItems() содержит метод foreach. –