'Declaration Public ReadOnly Property SelectedItems As IList
'Usage Dim instance As DataGridControl Dim value As IList value = instance.SelectedItems
public IList SelectedItems {get;}
'Declaration Public ReadOnly Property SelectedItems As IList
'Usage Dim instance As DataGridControl Dim value As IList value = instance.SelectedItems
public IList SelectedItems {get;}
The SelectedItems, SelectedItem, and SelectedIndex properties represent data items and not DataRows.
In the case where more than 1 data item is selected in a grid, the SelectedItem property will return the first data item in the SelectedItems collection and the SelectedIndex property will return the index of this same item.
The CurrentItem and SelectedItem/SelectedItems properties must be set to a null reference (Nothing in Visual Basic) in order to reset them when the NavigationBehavior property is set to None.
The SelectionChanged and SelectionChanging events can be handled to be notified when the selection has changed or is about to be changed, respectively.
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"> <Grid.Resources> <xcdg:DataGridCollectionViewSource x:Key="cvs_orders" Source="{Binding Source={x:Static Application.Current}, Path=Orders}"/> </Grid.Resources> <xcdg:DataGridControl x:Name="OrdersGrid" ItemsSource="{Binding Source={StaticResource cvs_orders}}" PreviewKeyDown="DeleteSelectedRows"> </xcdg:DataGridControl> </Grid>
Private Sub DeleteSelectedRows(ByVal sender As Object, ByVal e As KeyEventArgs) Dim grid As DataGridControl = TryCast( sender, DataGridControl ) If Not grid Is Nothing Then If e.Key = Key.Delete Then If grid.SelectedItems.Count > 0 Then ' we keep a copy of the selected items because once the first item is deleted, ' the selected items are reset to 0. Dim items As ArrayList = New ArrayList( grid.SelectedItems ) Dim dataView As DataView = TryCast( ( CType( grid.ItemsSource, _ DataGridCollectionView ) ).SourceCollection, DataView ) For i As Integer = items.Count - 1 To 0 Step -1 dataView.Table.Rows.Remove( CType( items( i ), System.Data.DataRow ) ) Next i grid.CurrentItem = grid.Items( 0 ) End If End If End If End Sub
Private void DeleteSelectedRows( Object sender, KeyEventArgs e ) { DataGridControl grid = sender As DataGridControl; If( grid != null ) { If( e.Key == Key.Delete ) { If( grid.SelectedItems.Count > 0 ) { // we keep a copy of the selected items because once the first item Is deleted, // the selected items are reset To 0 And the source may be automatically modified To // reflect the New items. ArrayList items = New ArrayList( grid.SelectedItems ); DataView dataView = ( ( DataGridCollectionView )grid.ItemsSource ).SourceCollection As DataView; For( int i = items.Count - 1; i >= 0; i-- ) { dataView.Table.Rows.Remove( ( System.Data.DataRow )items[ i ] ); } grid.CurrentItem = grid.Items[ 0 ]; } } } }
Target Platforms: Windows 11, Windows 10, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2