我有一个带有复选框的DataGrid,使用我在互联网上找到的代码.
<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>
但是,我如何获得所选行?我正在使用WPF MVVM.
解决方法
因为你正在使用MVVM模式,你可以像这样声明一个ViewMode:
public class MyViewModel { public ObservableCollection<Prototype> Items { ... } public Prototype SelectedItem SelectedItem { ... } }
之后,在您的数据网格中,您可以通过以下方式声明绑定:
<DataGrid ItemSource="{Binding Items}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}"... />
在您的代码中,您可以使用“SelectedItem”属性来获取当前选定的数据网格行.
否则,如果您的意思是“已检查”行,则可以查询您的可观察集合:
var selectedRows = ViewModel.Items.Where(i => i.IsSelected);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。