Create a collection of some type (like an ArrayList), then enumerate the rows in your DataGrid. You can do this using the BindingContext of the DataGrid to get the CurrencyManager which associates rows in the DataSource to their displayed rows (since sorting or filtering may change index mapping). For each row index, you can call DataGrid.IsSelected, passing the row index. If true, add to the collection of selected rows. The only real question is whether or not multiple rows are truly selected (i.e., they make look it but their state is a matter of the DataGrid's implementation). I don't know why there isn't a much easier way (like with the ListView). Perhaps MS thought it wouldn't be oft-used enough to warrant the resources. Of course, this could be said about a lot of things in the .NET 1.x BCL! :mad:
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----