【发布时间】:2014-06-20 19:34:42
【问题描述】:
即使我设置了SelectionMode="Extended" 和SelectionUnit="FullRow",当我调试SelectionChanged 事件时,SelectedItems 中始终只有一个选定项。
这是我的DataGrid:
<DataGrid Grid.Row="0" AutoGenerateColumns="False" Margin="5,5,5,0"
Name="dgrMembersClub1" ItemsSource="{Binding .}" CanUserAddRows="False"
SelectionMode="Extended" SelectionUnit="FullRow" SelectionChanged="Grid_SelectionChanged">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Joining" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn IsReadOnly="True" Header="Surname" Binding="{Binding Surname}" />
<DataGridTextColumn IsReadOnly="True" Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn IsReadOnly="True" Header="Club" Binding="{Binding Club_Id, Converter={StaticResource ClubName}}" />
<DataGridTextColumn IsReadOnly="True" Header="City" Binding="{Binding City}" />
</DataGrid.Columns>
</DataGrid>
还有我的Grid_SelectionChanged 活动:
private void Grid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid grid = (DataGrid)sender;
var test = grid.SelectedItems; //Count == 1 (always)
}
我确实设置了触发器(在 App.xaml 中),用于更改选定行和交替行的背景和前景画笔。如果相关,请告诉我,我会添加代码。
* 编辑 *
当您使用它时,我可以使用一些帮助来让单元格模板中的复选框也能正常工作。漂亮请:)
【问题讨论】:
-
您可以绑定到 SelectedItems。
-
@GayotFow:这将删除所有未在数据网格中选择的项目,对吧?那不是我真正想要的。问题是我不能选择超过 1 行。
-
不,不会从网格中删除任何内容。它是一组选定的项目。我一直绑定它。
标签: c# wpf datagrid selecteditem