I would like to have a grid with a button on each row that when pressed launches another window; the handler will have to know the contents of one of the data fields on the row (the pk) in order to display the new window. Based on the outcome of this process the user may or may not check a checkbox on that row that is not bound to data. There will be a button on the window outside of the grid that when pressed will run another process on all rows that have the checkboxes checked. I would also like to have buttons external to the grid that will check or uncheck all of the checkboxes. I have searched the examples and documentation and cannot find out how to determine the PK of the row when the button is pressed nor a way to iterate through the rows and process the ones with the checkbox checked. Some sample code would be appreciated as I'm new to WPF.