2012-06-28 5 views
6

인터넷 상에있는이 코드를 사용하여 DataGrid에 체크 상자가 구현되어 있습니다.WPF MVVM DataGrid 선택한 행을 검색하십시오.

<my:DataGrid.RowHeaderTemplate> 
    <DataTemplate> 
    <Grid> 
     <CheckBox IsChecked="{Binding Path=IsSelected, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type my:DataGridRow}}}" /> 
    </Grid> 
    </DataTemplate> 
</my:DataGrid.RowHeaderTemplate> 

그러나 선택한 행을 어떻게 가져올 수 있습니까? WPF MVVM을 사용하고 있습니다. 당신의 데이터 그리드에,이 방법으로 바인딩을 선언 할 수

public class MyViewModel 
{ 
    public ObservableCollection<Prototype> Items { ... } 
    public Prototype SelectedItem SelectedItem { ... } 
} 

후 :

+1

하면 사람들이 너희들이 downvoting 때 질문에 댓글을 추가 할 수 있습니다하십시오 뜻 경우 그렇지 "확인"행, 당신은 당신의 관찰 수집을 조회 할 수 있습니다. 그런 다음 질문을 왜 내려야 하는지를 알게됩니다. 감사. –

+0

알겠습니다. 고맙습니다. – wipindipy10

답변

9

당신은 당신이이 같은 뷰 모드를 선언 할 수있는 MVVM 패턴을 사용하고 이후에

<DataGrid ItemSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"... /> 

당신의 코드에서 "SelectedItem"속성을 사용하여 현재 선택한 DataGrid 행을 가져올 수 있습니다.

var selectedRows = ViewModel.Items.Where(i => i.IsSelected);