2012-06-28 15 views
6

Mam pole DataGrid z checkbox zaimplementowane na to przy użyciu tego kodu, który znalazłem w Internecie.WPF MVVM pobierać datagrid wybrane wiersze

<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> 

Ale jak mogę uzyskać wybrane wiersze? Używam WPF MVVM.

+1

proszę możesz ludzie dodać komentarz do pytanie, kiedy jesteście downvoting. Wtedy będą wiedzieć DLACZEGO ich pytania zostaną odrzucone. Dzięki. –

+0

Mam to ... Dziękuję. – wipindipy10

Odpowiedz

9

ponieważ używasz wzorca MVVM można zadeklarować ViewMode takiego:

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

Po, w DataGrid można deklarować wiąże w ten sposób:

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

w twojej kod, można użyć właściwości "SelectedItem", aby uzyskać bieżący wybrany wiersz datagridu. Else jeśli masz na myśli „zaznaczone” wiersze, można wyszukać swoją zaobserwowania kolekcji:

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