private BangumiDialog(BangumiDialogViewModel vm, XamlRoot xamlRoot)
 {
     this.vm          = vm;
     this.DataContext = vm;
     InitializeComboBoxData(vm);
     this.InitializeComponent();
     this.Closing += (s, e) =>
     {
         if (!needToClose)
         {
             e.Cancel = true;
         }
     };
     XamlRoot = xamlRoot;
 }
        private void InitializeComboBoxData(BangumiDialogViewModel vm)
        {
            var list = new List <BangumiDialogViewModel.ComboBoxData>()
            {
                new BangumiDialogViewModel.ComboBoxData("360P 流畅", 16),
                new BangumiDialogViewModel.ComboBoxData("480P 清晰", 32),
                new BangumiDialogViewModel.ComboBoxData("720P 高清(需要登录)", 64),
                new BangumiDialogViewModel.ComboBoxData("720P60 高清(大会员)", 74),
                new BangumiDialogViewModel.ComboBoxData("1080P 高清 (需要登录)", 80),
                new BangumiDialogViewModel.ComboBoxData("1080P+ 高清(大会员)", 112),
                new BangumiDialogViewModel.ComboBoxData("1080P60 高清(大会员)", 116),
                //new BangumiDialogViewModel.ComboBoxData("4K 超清(大会员)" ,120)
            };

            vm.ComboBoxDataList = list;
        }
        public static async Task <BangumiDialog> CreateAsync(BiliBangumi bangumi, XamlRoot xamlRoot)
        {
            var model = new BangumiDialogViewModel();

            model.VideoTitle = bangumi.Title;

            //var stream = await NetHelper.HttpGetStreamAsync(bangumi.Cover, null, null);
            //var file = await ApplicationData.Current.LocalCacheFolder.CreateFileAsync("videocovercache", CreationCollisionOption.GenerateUniqueName);
            //var fileStream = await file.OpenStreamForWriteAsync();
            //await stream.CopyToAsync(fileStream);
            //stream.Close();
            //fileStream.Close();
            //var img = new BitmapImage();
            //await img.SetSourceAsync((await file.OpenStreamForReadAsync()).AsRandomAccessStream());
            var img = new BitmapImage(new Uri(bangumi.Cover));

            model.VideoCover = img;

            var list = bangumi.EpisodeList.Select(v => new VideoInfo()
            {
                Info = new BiliVideoInfo()
                {
                    Bv       = v.Bv,
                    Cid      = v.Cid,
                    Name     = v.Name,
                    CoverUrl = v.Cover
                },
                ToDownload           = false,
                BackGroundColorBrush = bangumi.EpisodeList.IndexOf(v) % 2 == 0
                ? new SolidColorBrush(Colors.WhiteSmoke) : new SolidColorBrush(Colors.White)
            }).ToList();
            var i = 1;

            foreach (var video in list)//添加序号
            {
                video.Info.Name = i + "." + video.Info.Name;
                i++;
            }
            model.VideoList = new ObservableCollection <VideoInfo>(list);

            return(new BangumiDialog(model, xamlRoot));
        }