【发布时间】:2022-12-04 10:48:35
【问题描述】:
在我从列表视图中删除一个元素后,我需要将当前列表视图项存储在一个新的对象列表中。
这是我的 schema.cs
public class Show
{
public class Show
{
public Show() { }
public int OrdNum { get; set; }
public DateTime DTshow { get; set; }
public string values { get; set; }
public int practice_Number { get; set; }
}
}
问题出在 Takenshows.cs
从 listview 中删除元素后,我不知道如何将 listview 项转换为 List< Show>。
这是我按下并从列表视图中删除现有元素的按钮:
//Takenshows.cs... public List<Show> myShows;
public TakenShows()
{
InitializeComponent();
lvwColumnSorter = new ListViewColumnSorter();
this.listView1.ListViewItemSorter = lvwColumnSorter;
myShows = new List<Show>();
}
private void button1_Click(object sender, EventArgs e)
{
c = 0;
if (listView1.SelectedItems != null)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Selected)
{
DialogResult dr = MessageBox.Show("Are you sure you want to remove the element?", "WARNING", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
switch (dr)
{
case DialogResult.Yes:
listView1.Items[i].Remove();
i--;
for (int j = 0; j < listView1.Items.Count; j++)
{
c = c + 1;
listView1.Items[j].SubItems[0].Text = c.ToString();
}
f = Int32.Parse(c.ToString());
// HERE's THE PROBLEM I need to cast my selected items from list view to object list ( List<Show>) and store those in myShows typed List<Show> Data
myShows = listView1.SelectedItems.Cast<ListViewItem>().Select(x =>
x.OrdNum, x.DTshow, x.values, x.practice_Number).ToList();
var frm2 = Application.OpenForms.OfType<Main>().First();
if (frm2 != null)
{
frm2.devCont();
frm2.devcontlist(f);
}
break;
case DialogResult.No:
break;
}
}
}
}
}
将不得不做这样的事情:
//BUT this code not works
myShows = listView1.SelectedItems.Cast<ListViewItem>().Select(x =>
x.OrdNum,x.DTshow,x.values,x.practice_Number).ToList();
当我从列表视图项中删除现有元素时,我需要在删除其中一个元素后保留的元素更新列表视图,而不包括我删除的元素。
在我从 listview 中删除现有元素并且它必须存储在 < Show> 列表中后,listview 必须更新。我怎样才能做到这一点?我已经尝试了所有可能的方法,但这几乎是不可能的。
【问题讨论】:
-
请格式化您的代码,使其变得可读。在 VS Ctrl+E,D 或菜单编辑 > 高级 > 格式化文档中。
标签: c# listview c#-4.0 listviewitem