Ahy que ponerle mas concepto a lo que haces, deberás dividir las responsabilidades de tu programa. Deja que el Visual solo haga lo que debe hacer y ser solo eso el Visual, todo lo que es logica va en su nivel de logica.
Esto quiere decir que si haces una venta entonces le estas enviando una orden a una logica que se encarga y tiene la responsabilidad de procesar esa venta, esta logica puede tener de retorno los nuevos valores del stock. Tu debes entonces pasar esto al ListView osea bindiarlo nuevamente.
Te invito a leer este articulo que habla de arquitectura en capas y mejores practicas en el desarrollo:
http://www.dotnetpanama.com/dotnetpa...Librerias.aspx
La clave es que mientras mas divido estén las responsabilidades de un programa mas facil es mantenerlo y manejarlo, la mayoría de los problemas vienen por soluciones mal pensadas y por eso se complica todo el proyecto.
Solo aconsejo que dejes que el Visual sea solo Visual y la lógica se encargue de los procesos.