OneWay: Use esto cuando desee que la propiedad vinculada actualice la interfaz de usuario. 
TwoWay: Tiene el mismo comportamiento que OneWayy OneWayToSourcecombinado. La propiedad vinculada actualizará la interfaz de usuario y los cambios en la interfaz de usuario actualizarán la propiedad vinculada ( por ejemplo , usaría esto con a TextBoxo a Checkbox). 
OneTime: Tiene el mismo comportamiento que OneWayexcepto que solo actualizará la interfaz de usuario una vez. Esta debería ser su opción predeterminada para el enlace (por varias razones que no detallaré aquí), solo debe usar otros tipos de enlaces si realmente necesita la funcionalidad adicional. 
OneWayToSource: Esto es lo opuesto a OneWay: los cambios en el valor de la interfaz de usuario actualizan la propiedad vinculada. 
Si no especifica nada, entonces el comportamiento dependerá del control que esté utilizando.
Para obtener más información, consulte la BindingModeenumeración en MSDN .
     
                
Un enlace consta de dos entidades:
El destino tiene que ser un
DependencyObject(para que el enlace funcione) y el origen puede ser unDependencyObjecto debería tener algún mecanismo para imitar el sistema de enlace de WPF sobre su cambio (INotifyPropetyChnagedinterfaz de implementación ).MVVM recomienda que el proyecto ViewModel esté libre de referencias relacionadas con la vista y, por lo tanto, se recomienda utilizar la
INotifyPropertyChangedinterfaz para hacer que el enlace WPF escuche el objeto de origen. La vinculación ocurre entre una propiedad de Source y una propiedad de Target (tiene que ser aDependencyProperty). por ejemplo, elTextPropertyde laTextBoxclase es DataBound a (digamos)UserNamepropiedad del modelo de vista. El enlace WPF ofrece cuatro tipos de enlace. Recuerde, Binding se ejecuta en el subproceso de la interfaz de usuario a menos que especifique lo contrario.UserNamepropiedad de ViewwModel , se reflejará en el cuadro de texto. Esto tiene un costo intermedio ya que el sistema de encuadernación solo busca cambios en la Fuente .TextPropertyy laUserNamepropiedad se mantendrá en sincronía y se actualizará entre sí, si uno cambia. Esto es más costoso ya que el sistema de encuadernación tiene que vigilar a ambos lados para detectar cambios.TextProperty, laUserNamepropiedad tomará el valor cambiado. De nuevo, esto tiene un costo intermedio ya que el sistema de encuadernación solo observa a Target en busca de cambios.Label,TextBlocketc.Si no menciona nada, cada propiedad de destino tiene un modo de enlace predeterminado asociado a sí misma. Por ejemplo, el
TextPropertyde aTextBoxtiene un modo de enlace predeterminado comoTwoWay. Para elTextPropertydeTextBlockes una forma.Es aconsejable que elija el modo correcto, ya que puede ayudarlo a reducir la latencia de la aplicación, especialmente en los casos en que tiene una gran cantidad de controles en su interfaz de usuario.
Para obtener más información sobre MVVM, aquí hay un artículo escrito por mí.
fuente