Nicht wählen Sie mehrere Zeilen in einer WPF-DataGrid

Obwohl ich habe SelectionMode="Extended" und SelectionUnit="FullRow" gesetzt, wenn ich die debug - SelectionChanged Veranstaltung, es gibt immer nur ein ausgewähltes Element in SelectedItems.

Dies ist mein 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>

Und meine Grid_SelectionChanged Veranstaltung:

private void Grid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    DataGrid grid = (DataGrid)sender;
    var test = grid.SelectedItems; //Count == 1 (always)
}

Ich habe Trigger set (in-App.xaml), das ändern der hintergrund-und Vordergrund-Pinsel für ausgewählte und wechselnde Reihen. Falls das relevant ist, bitte lassen Sie mich wissen, und ich werde den code hinzufügen.

* EDIT *

Während Sie gerade dabei sind, ich könnte etwas Hilfe verwenden, bekommen Sie das Kontrollkästchen in der Zelle-Vorlage zu arbeiten. Ziemlich bitte 🙂

  • Sie können für die Bindung SelectedItems.
  • Das würde entfernen Sie alle Elemente, die nicht ausgewählt sind, in das datagrid, richtig? Das ist nicht wirklich das was ich will. Das problem ist, ich kann nicht wählen Sie mehr als 1 Zeile.
  • Nein, nichts wird entfernt aus dem Netz. Es ist ein array der ausgewählten Elemente. Ich Binde es die ganze Zeit.
InformationsquelleAutor DerpyNerd | 2014-06-20
Schreibe einen Kommentar