Q:

How do you use data binding in C# winforms development?

Recently I use data binding to speed up my development of C# winforms application.  But I found that data binding is just useful when the control is Textbox or textare and text kind   of controls. If things come to be radio button, image control or datagridview, it's hard for   me to use data binding.
    For example, it's hard for me to bind a group of radio button to a database field.
    It's hard for me to pre-process the data in database and then bind to datagridview   control(I know I can use view to do this, but it is not that convenient)
    (another example: the vale in database is 1 and 0, I need to convert to female and male   before binding datagridview)  
So I really want to know, most of you guys when will use data binding? And how will you use it ?
EDIT:
I know I can separate these things into different layers, but I do want to take advantage of the data binding, but while I use it, I found it is not that convenient, is there any other suffer from this ?    
EDIT:
but as far as i know the data binding is just like hardcode, it bind the control direct to the database field, and it's hard to make changes upon these user interface afterwards

A:

You should check out the Model-View-ViewModel style of development. In a very simple sense the ViewModel is a mapping to and from the Model (data from your database) and the View (your UI). The ViewModel should be almost purely data bound to the UI. Your business logic occurs here and it should be very testable.

