我一直在试图弄清楚如何在在线搜索解决方案时将这种自定义行为放入数据网格中而无需多看。
给定以下数据网格(为简洁起见,删除了一些 xaml):
<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Width="auto">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Selected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
我已将复选框成功绑定到每一行的数据绑定对象。(注意:我使用的是DataGridTemplateColumn
而不是DataGridCheckBoxColumn
这样你不需要双击来改变值)。
我想要实现的是能够在用户选择一行时勾选复选框/更新数据绑定对象的 Selected 属性。有效地使整行单击设置复选框的选中属性。理想情况下,如果可能的话,我想在没有代码隐藏文件的情况下执行此操作,因为我试图让我的代码尽可能干净。
如果可能的话,我想要的另一个功能是单击一行将切换它的选定属性,这样如果您单击另一个,前一个和新的一样保持选中状态。
任何帮助深表感谢。