2012-06-28 25 views
6

Tengo un DataGrid con casilla de verificación implementada en él utilizando este código que encontré en Internet.WPF MVVM recuperar filas seleccionadas de la cuadrícula de datos

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

Pero, ¿cómo puedo obtener las filas seleccionadas? Estoy usando WPF MVVM.

+1

favor puede añadir un comentario gente a cuestionar cuando ustedes están downvoting. Entonces, sabrán POR QUÉ sus preguntas son downvoted. Gracias. –

+0

Entendido ... Gracias. – wipindipy10

Respuesta

9

ya que usted está utilizando el patrón MVVM se puede declarar un ViewMode así:

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

Después, en su cuadrícula de datos, se puede declarar la unión de esta manera:

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

En su código puede usar la propiedad "SelectedItem" para obtener la fila actual de la cuadrícula de datos seleccionada. Else si usted quiere decir "controladas" filas, se puede consultar su colección observables:

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