在Datagrid中获取多项选择

时间:2018-02-08 14:51:03

标签: c# wpf datagrid

我正在尝试在数据网格中选择所有行。所有行都是ObservableCollection<T>的项目,我想知道选择了哪些元素(可以是一个,很多或没有)。另外,我不想使用复选框,想要(如果可能的话)某些想法如ctrl + leftMouseClick所以选择多行。

这是xaml代码:

                <DataGrid ItemsSource="{Binding ListBinded}" AutoGenerateColumns="False" Name="ListName"
                Style="{StaticResource AzureDataGrid}" Grid.Row="1" FrozenColumnCount="2"
                ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Auto">
                    <DataGrid.Resources>
                        <Style x:Key="AlignBottomColumnHeader" BasedOn="{StaticResource AzureDataGridColumnHeader}" TargetType="DataGridColumnHeader">
                            <Setter Property="VerticalContentAlignment" Value="Bottom" />
                        </Style>
                    </DataGrid.Resources>
                    <DataGrid.Columns>
                        <!--Description-->
                        <DataGridTemplateColumn Header="Description" HeaderStyle="{StaticResource AlignBottomColumnHeader}" Width="*" MinWidth="200">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <Border BorderThickness="2">
                                        <TextBlock Text="{Binding InfoColumn}"/>
                                    </Border>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                    </DataGrid.Columns>
                </DataGrid>

很想把C#代码放在下面,但现在没有代码。

编辑:对我而言,这不是重复,因为我的代码中没有DataGrid,而是ObservableCollection,它没有SelectedItem参数(我试图在ViewModelBase类中获取信息,之后ICommand触发了)

1 个答案:

答案 0 :(得分:0)

如果您正在使用MVVM模式,则可以使用SelectedRecord SelectedItem绑定VM的DataGrid属性。通过这种方法,您的VM中始终有SelectedValue

如果您不使用MVVM,则可以获得SelectedIndex DataGrid属性,然后将其转换为您拥有的类型。然后你可以循环它以获得所有选定的项目。