DataRepeater Удалить только топ -запись.
-
27-10-2019 - |
Вопрос
У меня есть 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();
}
}
Любая помощь была бы отличной!.
Решение
Я предполагаю, что вы смешаны между вашим documentsBindingSource
и ваш dataRepeater
.
То, что вы «видите» визуально, это DataRepeater, пока то, что вы "получаете", это documentsBindingSource.Current
(что вы получаете как SelectedRowView
)
который всегда устанавливается на 0. Индекс. Это слишком широкая ловушка управления Winforms.
Не связан с StackOverflow