C# 使用listview C中的现有项添加新项#
“我的列表视图”中已存在一些项目。页面上有一个添加按钮,可以打开一个对话框,用户可以在其中添加新项目。对话框关闭后,我必须将该新项附加到已存在的项中。这是代码,一直到最后,但没有添加新项。我的列表视图中有多个列。我在这方面做错了什么C# 使用listview C中的现有项添加新项#,c#,winforms,listview,C#,Winforms,Listview,“我的列表视图”中已存在一些项目。页面上有一个添加按钮,可以打开一个对话框,用户可以在其中添加新项目。对话框关闭后,我必须将该新项附加到已存在的项中。这是代码,一直到最后,但没有添加新项。我的列表视图中有多个列。我在这方面做错了什么 public frmEditObject(AddException ObjException) { InitializeComponent(); if (ObjException != null) { ListViewItem
public frmEditObject(AddException ObjException)
{
InitializeComponent();
if (ObjException != null)
{
ListViewItem lviMember, lviSender = null;
bool alreadyExists =
exceptionsList.Find(
item =>
item.UserDetail == ObjException.UserDetail && item.ExceptionType != ObjException.ExceptionType) !=
null
? true
: false;
if (!alreadyExists)
{
exceptionsList.Add(ObjException);
lvwExceptionMember.Items.Clear();
lvwExceptionMember.BeginUpdate();
foreach (var item in exceptionsList)
{
if (item.ExceptionType == Enumerations.ExceptionType.Members)
{
lviMember = new ListViewItem(
item.UserDetail);
lviMember.Tag = 0;
lviMember.SubItems.Add(GetDisplayNameFromSamAccountName(item.UserDetail));
lvwExceptionMember.Items.Add(lviMember);
}
}
lvwExceptionMember.EndUpdate();
lvwExceptionMember.Refresh();
}
}
}
遵循以下步骤:
public frmEditObject(AddException ObjException)
{
InitializeComponent();
//CHECK THAT YOUR OBJECT IS ALIVE
if (ObjException != null)
{
ListViewItem lviMember, lviSender = null;
bool alreadyExists = exceptionsList.Find(item => item.UserDetail == ObjException.UserDetail && item.ExceptionType != ObjException.ExceptionType) != null ? true : false;
if (!alreadyExists)
{
//CHECK THAT NEW ITEM IS REALLY NEW, DOES NOT EXIST IN LIST
exceptionsList.Add(ObjException);
//YOU DO NOT NEED TO CLEAR LIST AND ADD ALL ITEMS TO IT
//lvwExceptionMember.Items.Clear();
//lvwExceptionMember.BeginUpdate();
Debug.WriteLine(item.ExceptionType);
if (item.ExceptionType == Enumerations.ExceptionType.Members)
{
//CHECK DOES YOUR OBJECT HAVE MEMBERS TYPE
lviMember = new ListViewItem(item.UserDetail);
lviMember.Tag = 0;
lviMember.SubItems.Add(GetDisplayNameFromSamAccountName(item.UserDetail));
lvwExceptionMember.Items.Add(lviMember);
}
// lvwExceptionMember.EndUpdate();
//lvwExceptionMember.Refresh();
}
}
}
您只想向listview添加新的AddException对象,对吗?当您在调试模式下启动应用程序时,在向LVWEExceptionMember添加项的行上设置断点,应用程序是否在该行中断执行?那么,可能有两个原因:1。列表2中已存在新项。新项没有ExceptionType==成员新项不在列表中,并且异常项的类型为membersCan您可以通过调试器检查它是否为新项,并且项的类型为成员。若一切正常,那个么应用程序需要在断点处中断(若您在lvwExceptionMember.Items.Add(lviMember)行设置一个断点),让我们来看看