I am thinking about using transactions in 2-tier WPF (or windows forms) applications in following way:
We can begin new transaction when we open new form for editing
Here is a few problem that you might encounter if you go this way
This is a discouraged practice. Use optimistic locking instead. Read data when necessary, keep a copy in memory. When dialog is closed, attempt to synchronize the changes with the database. If data have been modified in the database in between, the action is aborted. The probability that it fails will depend on the numer of users, etc. But this is frequently acceptable in practice.