2012-06-28 20 views
6

Ich habe ein DataGrid mit Checkbox implementiert mit diesem Code, den ich im Internet gefunden habe.WPF MVVM DataGrid abgerufene Zeilen

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

Aber, wie kann ich die ausgewählten Zeilen zu bekommen? Ich verwende WPF MVVM.

+1

Bitte können Sie Leute hinzufügen, um einen Kommentar zu hinterfragen, wenn Sie Jungs Downvoting. Dann werden sie wissen, WARUM ihre Fragen abgelehnt werden. Vielen Dank. –

+0

Bekam es .. Danke. – wipindipy10

Antwort

9

, da Sie das MVVM Muster verwenden Sie einen Viewmode wie diese erklären können:

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

Nachdem in Ihrem Datagrid, können Sie auf diese Weise erklären Bindung:

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

In Ihrem Code können Sie die "SelectedItem" -Eigenschaft verwenden, um aktuelle ausgewählte Datagrid-Zeile zu erhalten. Else, wenn Sie „geprüft“ Zeilen bedeuten, können Sie Ihre beobachtbaren Sammlung abfragen:

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