[UWP] [C#]在listview

时间:2016-03-17 07:10:11

标签: c# xaml windows-runtime win-universal-app

我是UWP的新手。我想将进度条值绑定到BackgroundDownloadMAnager。

我有一个显示Active下载的ListView。

<ListView Foreground="Black" x:Name="DownloadsList">
    <ListView.ItemTemplate>
      <DataTemplate>
        <ListViewItem MinWidth="{Binding MinWidth}">
          <StackPanel Tag="{Binding DownloadGUID}" Orientation="Horizontal">
             <StackPanel VerticalAlignment="Center" HorizontalAlignment="Left">
                <Image Source="{Binding IMGUri}" Width="50" Height="50"/>
                 </StackPanel>
                  <StackPanel MinWidth="{Binding MinWidth}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="15,0,0,0">
                    <StackPanel >
                      <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding APPNAME}"/>
                        <TextBlock Text="{Binding Percentage}"/>
                      </StackPanel>
                      <StackPanel>
                        <ProgressBar Minimum="0" Maximum="100" IsIndeterminate="True"/>
                      </StackPanel>
                     </StackPanel>
                    </StackPanel>
                    <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="20,0,20,0">
                       <Button Content="&#xE769;" Tag="{Binding DownloadGUID}" FontFamily="Segoe MDL2 Assets" Margin="15,0,15,0" HorizontalAlignment="Right" Click="PauseBTN_Click" />
                       <Button Content="&#xE711;" Tag="{Binding DownloadGUID}" FontFamily="Segoe MDL2 Assets" Margin="0,0,15,0" HorizontalAlignment="Right" Click="StopBTN_Click"/>
                     </StackPanel>
                  </StackPanel>
                 </ListViewItem>
               </DataTemplate>
             </ListView.ItemTemplate>
          </ListView>

C#

    public class AppDownload
    {
        public Guid DownloadGUID { get; set; }
        public bool IsResumable { get; set; }
        public BackgroundDownloadProgress Status { get; set; }
        public int DownloadPercent { get; set; }
        public string IMGUri { get; set; }
        public string APPNAME { get; set; }
        public double MinWidth { get; set; }
    }

我如何获得有效下载列表

    async void ListDownloads()
    {
        var downloads = await BackgroundDownloader.GetCurrentDownloadsAsync();
        if (downloads.Count >= 1)
            foreach (var item in downloads)
            {
                try
                {
                    var status = item.Progress.Status;
                    var ri = item.GetResponseInformation();
                    var uri = ri.ActualUri.Query;
                    var s1 = uri.Split('=');
                    var s2 = s1[1].Split('&');
                    var appid = s2[0];
                    var appinf = await new JsonData().GetApplicationDetails(Convert.ToInt32(appid));
                    DownloadsList.Items.Add(new AppDownload() { MinWidth = Window.Current.Bounds.Width - 120 , DownloadGUID = item.Guid, IMGUri = new JsonData().ConvertJSONUriToString(appinf.IconSquare), APPNAME = appinf.NameEnglish + "\t\t\t", DownloadPercent = 100 * Convert.ToInt32(item.Progress.BytesReceived / item.Progress.TotalBytesToReceive) });

                }
                catch { }
            }

    }

我想知道如何动态更改此进度条值以及更改其他内容(例如TextBlocks文本之一) 谢谢。

0 个答案:

没有答案
相关问题