private void refillListView() { listViewAaxFiles.Items.Clear(); foreach (var pr in _fileItems) { var fi = pr.FileItem; var lvi = pr.ListViewItem; if (lvi is null) { lvi = new ListViewItem { Text = fi.BookTitle, }; lvi.SubItems.Add(fi.Author); lvi.SubItems.Add($"{fi.FileSize / (1024 * 1024)} MB"); lvi.SubItems.Add(fi.Duration.ToStringHMS()); lvi.SubItems.Add(fi.PublishingDate?.Year.ToString()); lvi.SubItems.Add(fi.Narrator); lvi.SubItems.Add($"{fi.SampleRate} Hz"); lvi.SubItems.Add($"{fi.AvgBitRate} kb/s"); lvi.SubItems[0].Tag = _converter.SortingTitleWithPart(fi); lvi.SubItems[2].Tag = fi.FileSize; lvi.SubItems[6].Tag = fi.SampleRate; lvi.SubItems[7].Tag = fi.AvgBitRate; pr.ListViewItem = lvi; } listViewAaxFiles.Items.Add(lvi); } if (listViewAaxFiles.Items.Count > 0) { listViewAaxFiles.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); listViewAaxFiles.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); } if (listViewAaxFiles.Items.Count == 1) { listViewAaxFiles.Items[0].Selected = true; } }
private void refillListView(bool recreate = false) { var ci = Thread.CurrentThread.CurrentCulture; var ciui = Thread.CurrentThread.CurrentUICulture; if (ciui is null) { ciui = ci; } Thread.CurrentThread.CurrentCulture = ciui; using (new ResourceGuard(() => Thread.CurrentThread.CurrentCulture = ci)) { listViewAaxFiles.Items.Clear(); foreach (var pr in _fileItems) { var fi = pr.FileItem; var lvi = pr.ListViewItem; if (lvi is null || recreate) { lvi = new ListViewItem { Text = fi.BookTitle, }; lvi.SubItems.Add(fi.Author); lvi.SubItems.Add($"{fi.FileSize / (1024 * 1024)} MB"); lvi.SubItems.Add(fi.Duration.ToStringHMS()); lvi.SubItems.Add(fi.PublishingDate?.Year.ToString()); lvi.SubItems.Add(fi.Narrator); lvi.SubItems.Add($"{fi.SampleRate} Hz"); lvi.SubItems.Add($"{fi.AvgBitRate} kb/s"); if (Settings.FileDateColumn) { lvi.SubItems.Add(fi.FileDate.ToShortDateString()); } lvi.SubItems[0].Tag = _converter.SortingTitleWithPart(fi); lvi.SubItems[2].Tag = fi.FileSize; lvi.SubItems[6].Tag = fi.SampleRate; lvi.SubItems[7].Tag = fi.AvgBitRate; if (Settings.FileDateColumn) { lvi.SubItems[8].Tag = fi.FileDate; } pr.ListViewItem = lvi; Log(3, this, () => { const string CC = "taslynmbd"; var sb = new StringBuilder(); int cnt = lvi.SubItems.Count; int n = Math.Min(CC.Length, cnt); for (int i = 0; i < n; i++) { if (sb.Length > 0) { sb.Append(", "); } string qt = (i <= 1 || i == 5) ? "\"" : string.Empty; sb.Append($"{CC[i]}={qt}{lvi.SubItems[i].Text}{qt}"); } return(sb.ToString()); }); } listViewAaxFiles.Items.Add(lvi); } } adjustListViewColumnWidths(); if (listViewAaxFiles.Items.Count == 1) { listViewAaxFiles.Items[0].Selected = true; } }