OneWay: use this when you want the data in code-behind to modify the value in your GUI
TwoWay: use this if you want to allow code-behind to modify the GUI value, or if you want the GUI value changed by the user to be reflected in code-behind
OneTime: your code-behind can set the value that is shown in your GUI once, and it will never change again. Only do this if you know you're not going to need to change the value in your code-behind.
OneWayToSource: This is the opposite of one way -- GUI value affects code behind value.