2010-03-28 7 views

답변

1

에게 있습니다. 행이로드 될 때마다 이벤트 핸들러가 추가되므로 행을 재사용하면 이벤트 핸들러가 누적 될 수 있습니다. 행을 언로드 할 때 이벤트 처리기를 제거하는 것이 좋습니다. 제안 된 코드는 다음과 같습니다.

private void dg_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.MouseRightButtonDown += new MouseButtonEventHandler(Row_MouseRightButtonDown); 
} 
void Row_MouseRightButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    dg.SelectedItem = ((sender) as DataGridRow).DataContext; 
} 
// new portion 
private void dg_UnloadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.MouseRightButtonDown -= new MouseButtonEventHandler(Row_MouseRightButtonDown); 
} 
관련 문제