2012-06-28 74 views
6

Tôi có một DataGrid với hộp kiểm được triển khai trên nó bằng cách sử dụng mã này mà tôi tìm thấy trên internet.WPF MVVM truy xuất dữ liệu được chọn các hàng

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

Nhưng, làm cách nào tôi có thể nhận được các hàng đã chọn? Tôi đang sử dụng WPF MVVM.

+1

Hãy thể bạn folks thêm một bình luận cho câu hỏi khi cậu đang downvoting. Sau đó, họ sẽ biết TẠI SAO câu hỏi của họ bị downvoted. Cảm ơn. –

+0

OK .. Cảm ơn bạn. – wipindipy10

Trả lời

9

kể từ khi bạn đang sử dụng mô hình MVVM bạn có thể khai báo một viewmode như thế này:

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

Sau đó, trong DataGrid của bạn, bạn có thể khai báo các ràng buộc theo cách này:

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

Trong của bạn bạn có thể sử dụng thuộc tính "SelectedItem" để có dòng dữ liệu được chọn hiện tại. khác nếu bạn có nghĩa là "kiểm tra" hàng, bạn có thể truy vấn bộ sưu tập quan sát của bạn:

var selectedRows = ViewModel.Items.Where(i => i.IsSelected); 
Các vấn đề liên quan