/// <summary> /// 刷新指定项的标记 /// </summary> /// <param name="item"></param> /// <param name="info"></param> void RefreshItemMask(ListViewItem item, ITorrentResourceInfo info) { string maskName; var mask = Context.Instance.GetResourceMark(info, out maskName); if (mask != null) { item.ForeColor = mask.Color; item.BackColor = mask.BackColor; item.SubItems[3].Text = maskName; } else { item.ForeColor = SystemColors.WindowText; item.BackColor = SystemColors.Window; item.SubItems[3].Text = ""; } }
ListViewItem CreateListViewItem(ITorrentResourceInfo info) { var item = new ListViewItem(new[] { info.Title.GetSubString(100), info.DownloadSizeValue == null ? info.DownloadSize : info.DownloadSizeValue.Value.ToSizeDescription(), info.FileCount == null?"" :info.FileCount.Value.ToString("N0"), "", info.UpdateTime == null ? info.UpdateTimeDesc : info.UpdateTime.Value.ToString("yyyy-MM-dd") }); item.ImageIndex = 0; item.Tag = info; item.UseItemStyleForSubItems = true; if (!info.IsHashLoaded) { info.DetailLoaded += TorrentOperation.MainForm.SaveInvoke((s, e) => { { var tinfo = s as ITorrentResourceInfo; if (!_itemCache.ContainsKey(tinfo.Hash)) { _itemCache.Add(tinfo.Hash, lv.Items.Cast <ListViewItem>().FirstOrDefault(x => x.Tag == tinfo)); RefreshItemMask(_itemCache[tinfo.Hash], tinfo); } } }); } else { RefreshItemMask(item, info); } return(item); }