2013-02-16 31 views
3

当我创建GroupedItemsPage,它具有的DataModel/SampleDataSource.cs例如内容添加在Windows 8 groupeditemspage

,但我怎么能补充一点,我从互联网加载内容和修改与Fizzler?

public sealed class SampleDataSource 
    { 
    string a = ""; 
    private static SampleDataSource _sampleDataSource = new SampleDataSource(); 

    private ObservableCollection<SampleDataGroup> _allGroups = new ObservableCollection<SampleDataGroup>(); 
    public ObservableCollection<SampleDataGroup> AllGroups 
    { 
     get { return this._allGroups; } 
    } 

    public static IEnumerable<SampleDataGroup> GetGroups(string uniqueId) 
    { 
     if (!uniqueId.Equals("AllGroups")) throw new ArgumentException("Only 'AllGroups' is supported as a collection of groups"); 

     return _sampleDataSource.AllGroups; 
    } 

    public static SampleDataGroup GetGroup(string uniqueId) 
    { 
     // Simple linear search is acceptable for small data sets 
     var matches = _sampleDataSource.AllGroups.Where((group) => group.UniqueId.Equals(uniqueId)); 
     if (matches.Count() == 1) return matches.First(); 
     return null; 
    } 

    public static SampleDataItem GetItem(string uniqueId) 
    { 
     // Simple linear search is acceptable for small data sets 
     var matches = _sampleDataSource.AllGroups.SelectMany(group => group.Items).Where((item) => item.UniqueId.Equals(uniqueId)); 
     if (matches.Count() == 1) return matches.First(); 
     return null; 
    } 

    public async Task<string> DownloadStringContent() 
    { 
     HttpClient client = new HttpClient(); 
     var response = await client.GetAsync(new Uri("http://www.google.com")); 
     var result = await response.RequestMessage.Content.ReadAsStringAsync(); 

     return result; 
    } 

    public async void setA() 
    { 
     a = await DownloadStringContent(); 
     while (a == "") ; 
    } 

    public SampleDataSource() 
    { 
     setA(); 
     String ITEM_CONTENT = a; 
     //String ITEM_CONTENT = String.Format("Item Content: {0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}", 
      //   "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat"); 

     var group1 = new SampleDataGroup("Group-1", 
       "Group Title: 1", 
       "Group Subtitle: 1", 
       "Assets/DarkGray.png", 
       "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante"); 
     group1.Items.Add(new SampleDataItem("Group-1-Item-1", 
       "Item Title: 1", 
       "Item Subtitle: 1", 
       "Assets/LightGray.png", 
       "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", 
       ITEM_CONTENT, 
       group1)); 
     group1.Items.Add(new SampleDataItem("Group-1-Item-2", 
       "Item Title: 2", 
       "Item Subtitle: 2", 
       "Assets/DarkGray.png", 
       "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", 
       ITEM_CONTENT, 
       group1)); 
     group1.Items.Add(new SampleDataItem("Group-1-Item-3", 
       "Item Title: 3", 
       "Item Subtitle: 3", 
       "Assets/MediumGray.png", 
       "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", 
       ITEM_CONTENT, 
       group1)); 
     group1.Items.Add(new SampleDataItem("Group-1-Item-4", 
       "Item Title: 4", 
       "Item Subtitle: 4", 
       "Assets/DarkGray.png", 
       "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", 
       ITEM_CONTENT, 
       group1)); 
     group1.Items.Add(new SampleDataItem("Group-1-Item-5", 
       "Item Title: 5", 
       "Item Subtitle: 5", 
       "Assets/MediumGray.png", 
       "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", 
       ITEM_CONTENT, 
       group1)); 
     this.AllGroups.Add(group1); 
    } 
} 

我想下载字符串从HttpClient的修改字符串中SampleDataSource但有没有在

我该怎么处理呢?请帮我

+0

你试过了什么?你将不得不创建一个异步方法来为你做这件事(因为所有的HTTP调用都是异步的)。不幸的是,示例应用程序在构造函数中填充数据模型,并且不能使构造函数异步,只需在其中包含HttpClient调用。 – 2013-02-16 16:14:10

回答

0

在MSDN文档核心层也许读..

Web服务回报2模型的方法:

  • 普通方法
  • 异步方法

,如果你想使用async方法,在方法中声明“async”子句。 如果调用Web服务方法异步,并且添加了“await”子句:等待Web方法响应的方法。在这个时候,不要在代码行之下。

和构造函数不支持异步子句。

将您的收藏绑定到一个控件上。仍然在下载显示控制。派生你的类INotifyProperty。

关于。