我正在開發WP 8.1中的音樂播放器應用程序我正在嘗試將跳轉列表功能加入其中。 爲了實現跳轉列表,我遵循here的示例。不能將void分配給WP 8.1中的隱式類型局部變量
我正在對可用代碼&進行一些必要的更改,這就是我如何在C#中實現所需的功能,MVVM & WP 8.1最小。
但我面對我的視圖模型錯誤在行
var items = ContactModel.CreateSampleData();
和錯誤是:
Cannot assign void to an implicitly-typed local variable
可能是什麼可能的原因????任何人都可以幫助我理解我出錯的地方。
using System.Collections;
using Windows.UI.Xaml.Data;
using JumpListSample.Common.JumpList;
using System.Collections.Generic;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using System;
using Windows.Storage;
using Windows.Storage.Search;
using System.Collections.ObjectModel;
namespace JumpListSample.ViewModels
{
public class ContactsViewModel
{
private IList data;
public IList Data
{
get
{
if (data == null)
{
var items = ContactModel.CreateSampleData();
data = items.ToAlphaGroups(x => x.Name);
}
return data;
}
}
private CollectionViewSource collection;
public CollectionViewSource Collection
{
get
{
if (collection == null)
{
collection = new CollectionViewSource();
collection.Source = Data;
collection.IsSourceGrouped = true;
}
return collection;
}
}
}
public class ContactModel
{
// constructor
public ContactModel()
{
Name = "name";
Albumart = new BitmapImage(new Uri("ms-appx:///Assets/Logo.scale-240.png"));
}
public async static void CreateSampleData()
{
ObservableCollection<ContactModel> data = new ObservableCollection<ContactModel>();
try
{
IReadOnlyList<IStorageItem> MusicLibrary = await KnownFolders.MusicLibrary.GetFoldersAsync(CommonFolderQuery.GroupByAlbum);
foreach (IStorageItem item in MusicLibrary)
{
ContactModel obj = new ContactModel();
IStorageItem musicItem = item;
obj.Name = musicItem.Name;
obj.Albumart = new BitmapImage(new Uri("ms-appx:///Assets/Logo.scale-240.png"));
data.Add(obj);
}
}
catch
{
}
finally
{
}
}
public string Name { get; set; }
public ImageSource Albumart { get; set; }
}
}
演示代碼可以從here下載。
ContactModel.CreateSampleData()不返回任何東西(技術上它返回void),所以你不能將它分配給一個變量。您可能想要返回「數據」公共異步任務> CreateSampleData()。順便說一句空的「終於」聲明是沒有意義的 –
2015-01-21 05:43:47
我還應該補充說,你將不得不「等待」結果。即。 var items = await ContactModel.CreateSampleData(); – 2015-01-21 05:49:39
我會誠實地說,我沒有深入研究所有這些的頭部空間,但「項目」將是一個列表,所以你會返回「數據」。即整個列表 – 2015-01-21 06:00:03