2015-01-13 13 views
0

데이터베이스에서 데이터를 표시하려면 데이터 격자를 사용하고 있습니다. 선택한 행을 가져와야하지만 DataGrid.SelectedItem을 사용할 때 SelectedItem.Does 속성을 인식하지 못합니다. 이유는 무엇일까요? bindinglist를 사용하여 데이터를 표에 바인딩합니다. DataGrid.SelectedItems recongnised되지 않습니다

private void delete_btn_Click(object sender, RoutedEventArgs e) 
    { 
     if (selectAll == true) 
     { 
      ThisAddIn.sourceContext.removeAll(); 
     } 
     else 
     {     
      var grid = sender as DataGrid; 
      var selected = grid.SelectedItems; 

      foreach (var item in selected) 
      { 
       ThisAddIn.sourceContext.removeEntity ((Source)item); 
      }     
     }   
    } 
 DataContext="{Binding RelativeSource={RelativeSource AncestorType=Window}}" 
     ItemsSource="{Binding ObservableEvtCode}" 
     Name="SourceDataGrid" AutoGenerateColumns="True" Margin="10,40,10,10" IsReadOnly="True" 

+0

'ThisAddIn.sourceContect'를 정의해야합니다. ** DataGrid ** 인 경우 데이터로 채우는 방법을 보여줍니다. – jp2code

+0

오류를 재현 할 수 없습니다. – Sheridan

+0

하지만 코드는 SelectedItem이 아닌 SelectedItem입니다. 왜 그냥 단추의 DataContext를 가져 오는 것이 아닙니다. 구문은 ((Button) sender) .DataContext라고 생각합니다. – Paparazzi

답변

0

SelectedItemDataGrid 클래스의 일부이다.

그러나 아무것도 선택하지 않으면 문제가 발생합니다.

이 정보가 도움이됩니까?

 var selected = grid.SelectedItems; 
     if (selected != null) 
     { 
     foreach (var item in selected) 
     { 
      ThisAddIn.sourceContext.removeEntity ((Source)item); 
     } 
     } 
+0

문제를 지적 해 주셔서 고맙지 만 내 문제의 답은 아닙니다. – srinced