2014-07-15 5 views
0

C# Winforms를 사용하여 BindingNavigator가있는 폼이 있습니다. 사용자가 삭제 버튼을 클릭하면 삭제되기 전에 기록을 기록하고 싶습니다.bindingNavigator에서 삭제 된 레코드 얻기

그러나 BindingSource.ListChanged이 행 삭제가 완료된 후 발생시키는 완료 이벤트 그

private void bindingSource_ListChanged(object sender, ListChangedEventArgs e) 
{ 
    if (e.ListChangedType == ListChangedType.ItemDeleted) 
{ 
} 
} 

사용하여 클릭 된 삭제 말할 쉽습니다. 이 이벤트가 시작되면 행이 이미 삭제되었으므로이를 트래핑 할 수 있습니까?

개체 목록에 바인딩하고 있습니다.

this.bindingSource.DataSource = Controller.Data; // returning a List<Person>() 
    this.bindingNavigator.BindingSource = this.bindingSource; 

.

+1

당신이 바인딩의 Click 이벤트를 설정? 그렇다면'RowDeleting' 이벤트를 직접 처리 할 수 ​​있습니다. – helrich

답변

0

bindingNavigator에는 bindingNavigatorDeleteItem이라는 ToolStripItem이 있습니다. bindingNavigator의 DeleteItem 속성이이 ToolStripItem으로 설정되었습니다. 대신 아무 것도 설정하지 않았습니다. 는 그런 다음`DataTable`에 bindingNavigatorDeleteItem ToolStripItem을

this.bindingNavigatorDeleteItem.Click += this.bindingNavigatorDeleteItem_Click; 

private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e) 
    { 
     this.bindingSource.EndEdit(); 
     MyLogger(this.bindingSource.Current); 
     this.bindingSource.RemoveCurrent(); 
    }