2012-06-28 23 views
6

İnternette bulduğum bu kodu kullanarak üzerinde bir onay kutusu bulunan bir DataGrid'im var.WPF MVVM, datagrid seçilen satırları alır

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

Ancak, seçilen satırları nasıl alabilirim? WPF MVVM kullanıyorum. Senin datagrid içinde, bu şekilde bağlanmasını ilan edebilir

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

sonra::

+1

millet siz downvoting zaman sorgulamaya yorum ekleyebilirsiniz edin: demek istiyorsan Else "işaretli" satırları, kendi gözlemlenebilir koleksiyonu sorgulayabilir. Daha sonra, NEDEN sorularını cevaplamadığını bilecekler. Teşekkürler. –

+0

Anladım .. Teşekkürler. – wipindipy10

cevap

9

Eğer böyle bir viewmode ilan edebilir MVVM desen kullandığınız beri ise

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

senin Geçerli seçili datagrid satırını almak için "SelectedItem" özelliğini kullanabilirsiniz.

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