C# Datarepeater仅删除顶级记录

C# Datarepeater仅删除顶级记录,c#,datarepeater,C#,Datarepeater,我有一个datarepeater,下面的代码只删除第一条记录,不管选择了哪条记录。我不完全相信这是使用datarepeater的正确方法,但我找不到更好的解决方案。我需要能够选择任何记录并删除它 //delete document private void cmdDeleteDoc_Click(object sender, EventArgs e) { if (this.dataRepeater1.CurrentItemIndex == 0)

我有一个datarepeater,下面的代码只删除第一条记录,不管选择了哪条记录。我不完全相信这是使用datarepeater的正确方法,但我找不到更好的解决方案。我需要能够选择任何记录并删除它

    //delete document
    private void cmdDeleteDoc_Click(object sender, EventArgs e)
    {

        if (this.dataRepeater1.CurrentItemIndex == 0)
        {

            //begin reset
            this.dataRepeater1.BeginResetItemTemplate();
            // Delete Row Here

            DataClasses1DataContext db = new DataClasses1DataContext();

            System.Data.DataRowView SelectedRowView;
            newCityCollectionDataSet.DocumentsRow SelectedRow;

            SelectedRowView = (System.Data.DataRowView)documentsBindingSource.Current;
            SelectedRow = (newCityCollectionDataSet.DocumentsRow)SelectedRowView.Row;


            var matchedDocument = (from c in db.GetTable<Document>()
                                   where c.DocIDKey == SelectedRow.DocIDKey
                                   select c).SingleOrDefault();

            db.Documents.DeleteOnSubmit(matchedDocument);
            db.SubmitChanges();

            LoadCaseNumberKey(matchedDocument.CaseNumberKey, false, "documents");
            this.dataRepeater1.EndResetItemTemplate();
        }


    }
//删除文档
私有void cmdDeleteDoc_单击(对象发送方,事件参数e)
{
if(this.dataRepeater1.CurrentItemIndex==0)
{
//开始复位
this.dataRepeater1.BeginResetItemTemplate();
//在此处删除行
DataClasses1DataContext db=新DataClasses1DataContext();
System.Data.DataRowView已选择RowView;
newCityCollectionDataSet.DocumentsRow SelectedRow;
SelectedRowView=(System.Data.DataRowView)documentsBindingSource.Current;
SelectedRow=(newCityCollectionDataSet.DocumentsRow)SelectedRowView.Row;
var matchedDocument=(来自db.GetTable()中的c)
其中c.DocIDKey==SelectedRow.DocIDKey
选择c.SingleOrDefault();
db.Documents.DeleteOnSubmit(匹配文档);
db.SubmitChanges();
LoadCaseNumberKey(匹配文件。CaseNumberKey,假,“文件”);
this.dataRepeater1.EndResetItemTemplate();
}
}

任何帮助都会很好的

我的猜测是您的
文档发现源代码
数据转发器



您在视觉上“看到”的是dataRepeater,而“得到”的是
documentsBindingSource.Current
(您在
SelectedRowView
中检索到的)
,它始终设置为0索引。这是一个非常常见的Winforms控件陷阱。

如果(This.dataRepeater1.CurrentItemIndex==0)
,为什么这一行
?@Mika不需要这一行?您是正确的。这是因为我从另一个按钮复制了它,其中必须有一个currentitem才能运行。另外,如果没有记录,我也不想让它开火。谢谢!实际上,我刚刚通过使用绑定导航器上的删除按钮解决了这个问题。