private void marketplace_contentView_SelectedItemsChanged(object sender, BetterListViewSelectedItemsChangedEventArgs eventArgs) { if (InvokeRequired) { return; } try { _prevItem?.Tokensource?.Cancel(); } catch (ObjectDisposedException odex) { _prevItem = null; //We can Ignore this as we are Intentionally Disposing of the Tokensource } if (_prevItem != null && _content.Contains(_prevItem)) { display_pic.Image = null; } if (contentview.SelectedValue != null) { MarketPlaceContent item = (MarketPlaceContent)contentview.SelectedValue; gametitle_text.Text = item.Title; developer_text.Text = item.Developer; publisher_text.Text = item.Publisher; release_text.Text = item.Releasedate.ToString(CultureInfo.CurrentCulture); genre_text.Text = item.OffersCount; description_textbox.Text = item.Description; if (item.Thumb == null && item.Thumburl != null) { var result = item.InitImageAsync(item.Thumburl); result.ContinueWith(task => { if (item.Tokensource != null) { display_pic.Image = task.Result; item.Tokensource = null; } }, item.Tokensource.Token); } else if (item.Thumb != null) { display_pic.Image = item.Thumb; } if (display_pic.Image == null) { } //todo:Load graphic for "Banner Not Found" _prevItem = item; if (item.Capabilities == null) { extrainfo_btn.Enabled = false; } else { extrainfo_btn.Enabled = true; } } }
void marketplace_XmlDocChanged(object sender, EventArgs a) { contentview.SuppressSelectionChanged(); _content.RaiseListChangedEvents = false; _batchhandler.Abort(); //while (!batchhandler.WorkDone) Task.Delay(10); _content.Clear(); var xdoc = _helper.XmlDoc; if (xdoc != null) { var entries = xdoc.Descendants(Constants.NetworkConnectivity.Namespaces.Atom + "entry"); foreach (var entry in entries) { MarketPlaceContent tempContent = new MarketPlaceContent(entry, (Language)querylanguage_sel.SelectedItem); tempContent.Load(); _content.Add(tempContent); } numitems_sync_label.Text = xdoc.Descendants(Constants.NetworkConnectivity.Namespaces.Live + "totalItems").First().Value; cat_sync_label.Text = _helper.MediaTypes.Name; int numItems; if (Int32.TryParse(numitems_sync_label.Text, out numItems)) { int max = (int)Math.Ceiling(numItems / entrys_num.Value); if (max < page_num.Value) { page_num.Value = max; } page_num.Maximum = max; Constants.BindingLists.Categorys[Constants.BindingLists.Categorys.IndexOf((MediaId)cat_select.SelectedItem)].TotalCount = numItems; } } _content.RaiseListChangedEvents = true; _content.ResetBindings(); _batchhandler.StartUrlCheck(false); contentview.ResumeSelectionChanged(); }