Lo que yo hago es lo siguiente:

Como ves en la imagen la parte de la "grilla" donde agregas los productos es un ListView, arriba de el hay unos texts en los que introducis, producto, cantidad y precio, al dar click en el boton "OK" estos datos se agregan al listview y automaticamente genera la columna Sub Total (cantidad * precio) y tambien suma los datos contenidos en esa columna para generar el total.
Con lo de la impresion, yo lo soluciono creando reportes que coincidan con los campos de formatos pre - impresos, sin mayores complicaciones.
Saludos