/// <summary> /// Binds a mouse event to a ViewModel Command. /// </summary> /// <param name="view">The view that will own the Binding.</param> /// <param name="eventType">The mouse event to bind to.</param> /// <returns>The binding class that allows chaining extra options.</returns> public static IObservable <Unit> OnMouseEvent(this ViewBase view, MouseEventType eventType) { if (eventType == MouseEventType.OnMouseDown) { var component = view.AddComponentBinding <ObservableMouseDownBehaviour>(); return(component.OnMouseDownAsObservable()); } else if (eventType == MouseEventType.OnMouseDrag) { var component = view.AddComponentBinding <ObservableMouseDragBehaviour>(); return(component.OnMouseDragAsObservable()); } else if (eventType == MouseEventType.OnMouseEnter) { var component = view.AddComponentBinding <ObservableMouseEnterBehaviour>(); return(component.OnMouseEnterAsObservable()); } else if (eventType == MouseEventType.OnMouseExit) { var component = view.AddComponentBinding <ObservableMouseExitBehaviour>(); return(component.OnMouseExitAsObservable()); } else if (eventType == MouseEventType.OnMouseOver) { var component = view.AddComponentBinding <ObservableMouseOverBehaviour>(); return(component.OnMouseOverAsObservable()); } return(view.AddComponentBinding <ObservableMouseOverBehaviour>().OnMouseOverAsObservable()); }