C#将删除的项目和更改的项目列入列表

C#将删除的项目和更改的项目列入列表,c#,datagridview,C#,Datagridview,我有一个问题,即如何将所有已删除的项目添加到新列表中,以及如何将已更改的项目添加到新列表中。我正在使用带有可排序bindingsource的datagridview。对于所有新项目,它已经在工作(代码的最后部分) 谢谢 namespace Levelapp { public partial class LevelView : Form { FilterLevel m_filterLevel; int m_filterLevelTotal;

我有一个问题,即如何将所有已删除的项目添加到新列表中,以及如何将已更改的项目添加到新列表中。我正在使用带有可排序bindingsource的datagridview。对于所有新项目,它已经在工作(代码的最后部分)

谢谢

namespace Levelapp
{
    public partial class LevelView : Form
    {
        FilterLevel m_filterLevel;
        int m_filterLevelTotal;

        public LevelView()
        {
            InitializeComponent();
        }

        public LevelView(FilterLevel opt)
        {
            InitializeComponent();

            m_filterLevel = opt;

            bindingSource1.DataSource = typeof(LevelResource);
            dataGridView1.DataSource = bindingSource1;            
            bindingSource1.DataSource = m_filterLevel.FoundLevels;

            m_filterLevelTotal = bindingSource1.Count;

        }

        private void newSheet_Click(object sender, EventArgs e)
        {
            string newItemName = "Sheet" + " " + "1";
            string newItemNumber = "A-00";

            LevelResource newItem = new LevelResource();
            newItem.Name = newItemName;
            newItem.Number = newItemNumber;

            bindingSource1.Add(newItem);
        }

        private void deleteSheet_Click(object sender, EventArgs e)
        {
            bindingSource1.RemoveCurrent();
        }

        private void ok_Click(object sender, EventArgs e)
        {
            for (int i = m_filterLevelTotal; i < bindingSource1.Count; i++)
            {
                bindingSource1.Position = i;
                LevelResource newSheet = bindingSource1.Current as LevelResource;             
            }
        }
    }
}
namespace-Levelapp
{
公共部分类LevelView:表单
{
过滤器级别m_过滤器级别;
int m_过滤器级别总计;
公共级视图()
{
初始化组件();
}
公共级别视图(过滤器级别选项)
{
初始化组件();
m_filterLevel=opt;
bindingSource1.DataSource=typeof(LevelResource);
dataGridView1.DataSource=bindingSource1;
bindingSource1.DataSource=m_filterLevel.FoundLevel;
m_filterLevelTotal=bindingSource1.Count;
}
私有无效新闻纸\u单击(对象发送者,事件参数e)
{
字符串newItemName=“工作表”+“”+“1”;
字符串newItemNumber=“A-00”;
LevelResource newItem=新的LevelResource();
newItem.Name=newItemName;
newItem.Number=newItemNumber;
bindingSource1.Add(newItem);
}
私有void deleteSheet_单击(对象发送者,事件参数e)
{
bindingSource1.RemoveCurrent();
}
私有无效确定\单击(对象发送者,事件参数e)
{
for(int i=m_filterLevelTotal;i
谢谢你的快速回复。但是我在bool结果行中出错了。此代码将在Revit中使用。下面是我如何将代码放在deleteSheet按钮下的部分

private void deleteSheet_Click(object sender, EventArgs e)
{

    for (int i = 0; i < bindingSource1.Count; i++)
    {
        bindingSource1.Position = i;
        var view = bindingSource1.Current as DataRowView;
        bool result = view.Row.RowState == DataRowState.Added || view.Row.RowState == DataRowState.Unchanged;
        if (result)
        {
            // new or didn't modified, work as normal

        }
        else
        {
            // add to another list
        }
    }            
}
private void deleteSheet\u单击(对象发送方,事件参数e)
{
for(int i=0;i

那么,您到底面临什么问题,请提及这一部分。请参阅我的第二个问题,以获取deleteSheet buton下列表中已删除的项目